编程语言
首页 > 编程语言> > Java 核心技术卷1 --第十四章 并发

Java 核心技术卷1 --第十四章 并发

作者:互联网

Github代码链接: https://github.com/deyou123/corejava.git

第十四章 并发

14.1 什么是线程

14.1.1 使用线程给其他任务提供机会

public interface Runnable
{
	void run();
}

Runnable r = ()->{task code};
Thread t = new Thread(r);
t.start();

14.2 中断线程

Runnable r= ()-> {
try
{
	while (!Thread.currentThread().islnterrupted0 && morework todo)
	{
	do more work
	}
}
catch(InterruptedException e)
{
// thread was interr叩ted during sleep or wait
}
finally
{
	cleanup,ifrequired
}
// exiting the run method terminates the thread
} ;

14.3 线程状态

线程可以有如下6 种状态:

在这里插入图片描述

14.3.1 新建线程

new Thread®; 线程还没开始运行;

14.3.2 可运行线程

14.3.3 被阻塞线程和等待线程

暂时不活动;不运行任何代码且消耗最小资源;

14.3.4 被终止的线程

两个原因:

14.4 线程属性

14.4.1 线程优先级

14.4.2 守护线程

14.4.3 未捕获异常处理器

uncaughtException方法做如下操作:
1、如果该线程组有父线程组,那么父线程组的uncaughtException方法被调用;
2、否则,如果Thread.getDefaultExceptionHandler方法返回一个非空的处理器,则调用该处理器。
3、否则,如果Throwable是ThreadDeath的一个实例,什么都不做
4、否则,线程的名字以及Throwable的战轨迹被输出到System.err上。

14.5 同步

两个或两个以上的

14.6 阻塞队列

阻塞队列:试图向队列添加元素而队列已满,或是想从队列移除元素而队列为空的时候,导致线程阻塞。
多线程合作:工作者线程可以周期性的将中间结果放在阻塞队列;其他的工作者线程移出中间结果并进一步加以修改。

在这里插入图片描述
阻塞队列分为3类,取决于当队列满或空时他们的响应方式。

注释
因为poll、peek返回空代表失败,向队列插入null值是非法的。

14.7 线程安全的集合

14.7.1 高效地映射、集合队列

java.util.concurrent提供: ConcurrentHashMap、ConcurrentSkipListMap、ConcurrentSkipListSet和ConcurrentLinkedQueue。

14.8 Callable与Future

14.9 执行器

14.10 同步器

14.11 线程与Swing

标签:Java,Thread,--,队列,线程,处理器,第十四章,优先级,方法
来源: https://blog.csdn.net/weixin_44919162/article/details/117669322