JAVA7并发编程
JAVA7并发编程
jiangmitiao 发表于3年前
JAVA7并发编程
  • 发表于 3年前
  • 阅读 101
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

1线程的创建与运行

接口Runnable

覆盖run方法

Thread thread = Thread(Runnable r,String name);
thread.start();

线程信息

thread中包含id  name  priorty  status

priorty中包括1到10,1最低,10最高

status状态有6种:new, runnable, blocked, waiting, time waiting, terminated

线程中断

interrupt()方法会中断线程。产生interrupredexception异常,用isInterrupted()来判断。

线程休眠与恢复

sleep函数也会抛出interruptedexception异常

等待线程终止

当一个线程join()方法被调用,调用所在线程将会挂起,直到被调用线程完成任务

守护线程

Daemon 线程优先级很低,当一个进程里没有其他线程运行的时候,守护线程才运行。

setDaemon方法只能在start前进行调用。

线程中不可控异常处理

非运行时异常,ioexception  classnotfoundexception,必须声明throw或捕获

运行时异常,numberformatexception,不需要任何操作

run方法不支持throws所以只能捕获

线程的分组

ThreadGroup tg;

使用工厂类创建线程

接口:ThreadFactory

可以创建个性化的线程,即设置线程信息。

2线程同步

使用synchronized实现同步方法

synchronized可以给类,方法,对象使用,静态方法和动态方法同时使用synchronized,则两个方法能被不同线程同时使用。

同步代码中使用条件

wait()使用时要捕获interruptedexception方法

使用锁同步:

Lock lock = new ReentrantLock();
lock.lock();
lock.unlock();

在锁中使用多条件:

Condition c1 = lock.newCondition();
Condition c2 = lock.newCondition();
c1.await();
c2.signal();

condition必须在lock()和unlock()方法内。

更多文章:https://blog.gavinzh.com

标签: Java 并发
共有 人打赏支持
jiangmitiao
粉丝 16
博文 44
码字总数 44413
作品 1
×
jiangmitiao
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: