首页 > 编程语言 > 详细

Java多线程

时间:2020-12-27 16:22:32      阅读:26      评论:0      收藏:0      [点我收藏+]

1. 线程与进程

可以理解成:进程是软件,线程是软件的执行路径。

技术分享图片

2.创建线程的3种方法

2.1继承Thread

技术分享图片

技术分享图片

2.2实现Runnable

这种创建线程的方法用的最多。

技术分享图片

技术分享图片

2.3带返回值的线程Callable

技术分享图片

3.线程阻塞

所有耗时操作都是线程阻塞,例如:文件读取、等待用户输入。

4.线程中断

在之前的java版本中关闭一个子线程的做法是调用stop()方法,但是这个方法现在已经过时了。因为这种stop做法并不合理。因为:stop子线程,可能子线程并没有关闭一些流,这会导致一些资源占用问题。

合理的做法是:让线程自己死亡,简称自杀。用过线程中断,实现子线程自杀。

技术分享图片

技术分享图片

技术分享图片

5.线程安全问题

线程不安全的原因:是由多个线程同时执行,去争抢一个数据,去同时操作一个数据,导致某个数据看到的和自己在使用时不一样。(判断和使用,中间间隔了几行代码;在判断和使用期间被其他线程插足了)

解决方案:就是让某些线程在执行中间这些代码时(判断和使用的中间时),其他线程不能插足就可以了。怎么不能插足呢?就是排队执行就可以了。

5.1同步代码块

技术分享图片

5.2同步方法

技术分享图片

5.3 显示锁Lock

技术分享图片

注意:不同的线程得看同一把锁,不然起不到效果。

6.多线程通信

技术分享图片

多线程通信:加一个标志位,通过让两个线程分别歇着(wait)、唤醒(notify)来实现。

Java多线程

原文:https://www.cnblogs.com/frankly5173143/p/14197574.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!