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线程基础的主要内容,如果未能解决你的问题,请参考以下文章

Java基础16:Java多线程基础最全总结

分享一个java线程专栏

Java基础教程:多线程基础——线程间的通信

Java基础笔记(四:多线程基础及生命周期)

java 基础学习:多线程04

JAVA多线程基础学习一:基础知识