高并发
包含线程,锁,线程池,AQS等
JIESHAOCSDN
这个作者很懒,什么都没留下…
展开
-
线程中run()方法和start()方法区别,为什么在调用start()时,会执行run()方法
1.线程中run()方法和start()方法区别run方法是线程中的一个普通方法体,可以重复调用。是线程里的一个函数,不是多线程,直接调用run方法,相当于调用一个普通函数,执行路径还是一条, 根本没有多线程的特征。而start方法是Thread中的线程启动方法,只能调用一次,且调用之后,线程就是就绪状态,时间片获取之后即可执行run方法中的内容。 start方法来启动一个线程,真正实现了多线程运算,调用start方法无需等待run方法运行完成,可以直接继续执行其他代码;run方法执行完毕,线程终止,然原创 2020-10-20 21:29:33 · 1035 阅读 · 0 评论 -
线程池的相关内容(常见的四种线程池类型,参数定义等)
一.什么是线程池java.util.concurrent.Executor接口的实现用于创建线程池。假设一个服务器完成一项任务所需的时间为:T1:创建线程时间T2:业务逻辑执行时间T3:线程销毁时间若T1+T3>>T2,此时考虑使用线程池。线程池能节省服务器资源,更大限度的降低处理器闲置时间。提高处理效率。作用:1.提高效率 使用线程时,直接从线程池中获取,节省了创建时间和销毁时间。提高了项目执行效率2.方便管理 线程池中固定的线程数,多余线程数的任务进入等待队列,等待队列满了原创 2020-10-20 21:11:50 · 670 阅读 · 0 评论 -
创建线程的四种方式和具体的实现原理
创建线程共有四种方式:1.继承Thread类2.实现Runnable接口3.实现Callable接口4.使用Executors工具类创建线程池具体实现方法如下:1.继承Thread类:定义一个MyThread子类,重写run方法,继承Thread类,调用子类实例的start()方法启动线程public class MyThread extends Thread { @Override public void run(){ System.out.println(Thr原创 2020-10-20 19:13:02 · 638 阅读 · 1 评论