线程

Java线程

1.      线程创建方式

a)      继承Thread

b)      实现Runnable接口重写run方法

c)       使用Callable和Future创建线程

                  i.           Callable接口的call方法作为线程执行体

                 ii.           call方法有返回值

                 iii.           call方法可以声明抛出异常

2.       线程的状态

a)      新建、就绪、阻塞、运行、死亡

3.       控制线程

a)      join线程

b)      线程睡眠sleep

c)       线程让步yield

sleep和yield的区别:

1  sleep方法暂停当前线程后,会给其它线程执行机会,不会理会其它线程的优先级;但yield只会给优先级相同,或优先级更高的线程执行机会

2  sleep方法会将线程转入阻塞状态,直到经过阻塞时间才会转入就绪状态;而yield强制当前线程进入就绪状态。

3  sleep方法抛出异常,所以调用sleep方法要么捕捉异常,要么显式声明抛出异常;而yield没有声明抛出任何异常

4  sleep方法比yield方法有更好的移植性

4.       线程同步

a)      synchronized

                    i.           同步代码块

                   ii.           同步方法

b)      同步锁Lock

5.       线程通信

a)      wait、notify、notifyAll与synchronized

b)      condition(Lock)

                    i.           await

                   ii.           signal

                 iii.           signalAll

c)       阻塞队列BlockingQueue

6.       线程池

7.       ForkJoinPool
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值