可以理解成:进程是软件,线程是软件的执行路径。
这种创建线程的方法用的最多。
所有耗时操作都是线程阻塞,例如:文件读取、等待用户输入。
在之前的java版本中关闭一个子线程的做法是调用stop()方法,但是这个方法现在已经过时了。因为这种stop做法并不合理。因为:stop子线程,可能子线程并没有关闭一些流,这会导致一些资源占用问题。
合理的做法是:让线程自己死亡,简称自杀。用过线程中断,实现子线程自杀。
线程不安全的原因:是由多个线程同时执行,去争抢一个数据,去同时操作一个数据,导致某个数据看到的和自己在使用时不一样。(判断和使用,中间间隔了几行代码;在判断和使用期间被其他线程插足了)
解决方案:就是让某些线程在执行中间这些代码时(判断和使用的中间时),其他线程不能插足就可以了。怎么不能插足呢?就是排队执行就可以了。
注意:不同的线程得看同一把锁,不然起不到效果。
多线程通信:加一个标志位,通过让两个线程分别歇着(wait)、唤醒(notify)来实现。
原文:https://www.cnblogs.com/frankly5173143/p/14197574.html