java线程基础
Posted suchmenoneeded
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java线程基础相关的知识,希望对你有一定的参考价值。
线程:进程中一个单一顺序的控制流,即执行一个任务先后顺序的过程 。
多线程:一个进程中创建多个控制流,他们之间可能有联系,也可能没有联系。类似于一条路上可以分出多条路,他们有的会交叉,有的也没有交叉。
1 继承Thread类
2 实现Runnable接口
四、线程的主要方法
start()
启动一个线程。
run()
线程中运行的程序。
yield()
让当前线程暂时放弃CPU资源和其他线程一起竞争CPU,有可能出现刚放弃就又获得了cpu;
sleep( long millis )
让当前线程退出CPU指定时长,但是不会释放锁,会使线程进入TIMED_WAITING状态,休眠时间过后重新回到RUNNABLE状态;
作用:定时执行任务;
wait()
使当前线程等待另一个线程调用notify或者notifyAll;
让线程退出CPU,且释放锁,使线程无限期等待进入WAITING状态,直到获得通知;
使用前必须加锁
作用:线程间通信;
notify()
唤醒一个因wait()方法处于WAITING状态的线程重新进入RUNNABLE状态,不释放锁
使用前必须加锁
作用:线程间通信
notifyAll()
唤醒所有因wait()方法处于WAITING状态的线程重新进入RUNNABLE状态,不释放锁
使用前必须加锁
作用:线程间通信
join() 、 join(time)
使线程等待另一个线程完成(或者等待固定时长)再继续执行,会使线程进入WAITING,会释放锁(内部通过wait()方法实现)
作用:线程间通信,等待另一个线程执行完成
以上是关于java线程基础的主要内容,如果未能解决你的问题,请参考以下文章