java多线程与线程池
文章平均质量分 68
详细系统学习多线程,并发编程
woai3364
热爱技术,喜欢编程,保持初心。
展开
-
java并发3之停止线程
所以当再次运行到while时,由于中断的效果已经被清除,检查不到任何被中断的迹象。其实,想要停止线程就是用interrupt来通知那个线程,以及被通知的那个线程如何配合。恢复中断的方式也就是在catch子语句中调用Thread.currentThread().interrupt() 来恢复设置中断状态。在这个throwInMethod()方法,它是低层次的相对run()方法,在检测到异常时,抛出异常,这时这个异常就会被吞掉。让run()方法(更高级的函数)去处理这个异常,就不会导致这个异常被吞掉。原创 2023-08-20 23:12:49 · 69 阅读 · 0 评论 -
java并发2之启动线程
run()方法的执行线程是主线程。要启动线程,要调用start()来间接调用run()方法。调用start()方法,将通知JVM在有空余时间时候创建新线程,调用start()方法的顺序并不能决定执行线程的顺序。既然start()方法会调用run()方法,为什么我们选择调用start()方法,而不是直接调用run()方法呢?不能重复调用start()方法,在每次启动旧的线程之前,都应该检查线程状态。源码:1)启动新线程检查线程状态,加入线程组,调用start0()。1、start()和run()方法的比较。原创 2023-07-20 14:36:04 · 67 阅读 · 0 评论 -
java并发1之实现多线程
②从资源节约的角度:每次我们新建一个任务,我都得新建一个独立的线程,而新建一个独立的线程的损耗是比较大的。如果我们使用Runnable,就可以使用后续的线程池工具,而这些工具大大减小创建线程和销毁线程带来的损耗。①从代码的架构角度:具体执行的这个任务也就是run方法应该和我们线程的创建机制,也就是Thread类,它应该是解耦的。③从继承的角度:java不支持多继承,继承了Thread类,就不能继承别的类了,大大的削减了程序的扩展性。继承Thread类:run()方法整个被重写。一、启动线程的两种方式。原创 2023-07-01 20:58:40 · 65 阅读 · 0 评论 -
java-多线程基础1
什么是进程:我们可以任意正在执行的app看成一个进程,进程是操作系统中资源分分配调度的基本单位,进程是拥有自己的地址空间的,进程中至少有一条线程,线程共享着进程的地址空间,可以把进程看成线程的容器。时间分片是指操作系统将CPU时间分为多个时间片,每个时间片分配给一个任务使用,任务在时间片结束前执行完毕或自行放弃CPU的使用,然后CPU将时间片分配给下一个任务。什么是线程:是指在java程序中同时执行多个任务的机制,每个线程都是独立的执行路径,可以同时执行不同的任务或者处理不同的数据。一、进程和线程的关系。原创 2023-03-26 14:21:59 · 51 阅读 · 0 评论