
线程
D-youny.
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何在项目启动时,开启一个线程自动启动
需求的话,具体是需要在项目启动时 ,开启一个异步线程,并且需要线程一直执行。用的springboot。本来想的是在需要执行的异步方法加上@Order(value = 1) ,ps:”该注解可以指定在项目启动后,就开始执行哪些方法,value值表示执行顺序 ,越小越靠前,不能为0”,但是发现启动后,异步方法一直执行,但主线程并没有继续执行,程序也就没跑起来。 后来经过打印发现, 此时异步方法并没有开启异步线程,依然在用主线程跑,所以项目也就没启动,因为她需要异步方法执行完成后才能继续,而异步方法这原创 2020-06-27 22:22:04 · 2607 阅读 · 0 评论 -
线程学习:线程之间的协作
synchronized 避免了线程之间安全问题,能一定的实现线程安全,但有时线程还需要相互协作,此时就需要wait/notify方法。线程之间的协作应用场景:生产者/消费者协作模式:这是一种常见的协作模式,生产者线程和消费者线程通过共享队列进行协作,生产者将数据或任务放到队列上,而消费者从队列上取数据或任务,如果队列长度有限,在队列满的时候,生产者需要等待,而在队列为空的时候,消费者需要等待...原创 2019-08-15 00:03:58 · 237 阅读 · 0 评论 -
线程学习:优先级
线程的优先级,顾名思义,表示线程执行的先后顺序,在程序中可以通过setPriority()来设置,有1-10个等级,10为最高级,默认为5。public class TestThread implements Runnable{ private static boolean go=true; 设置一个静态量用于停止线程 private int k=0; 设置一个in...原创 2019-08-11 12:20:26 · 259 阅读 · 0 评论 -
线程学习:内存可见性
多个线程可以共享访问和操作相同的变量,但一个线程对一个共享变量的修改,另一个线程不一定马上就能看到,甚至永远也看不到,举个列子。public class TestThread extends Thread{ private static boolean shutdown = false; static class HelloThread extends Thr...原创 2019-08-11 15:12:07 · 103 阅读 · 0 评论 -
线程学习:线程的优点及成本
优点充分利用多CPU的计算能力,单线程只能利用一个CPU,使用多线程可以利用多CPU的计算能力。充分利用硬件资源,CPU和硬盘、网络是可以同时工作的,一个线程在等待网络IO的同时,另一个线程完全可以利用CPU,对于多个独立的网络请求,完全可以使用多个线程同时请求。在用户界面(GUI)应用程序中,保持程序的响应性,界面和后台任务通常是不同的线程,否则,如果所有事情都是一个线程来执行,当执行一个...原创 2019-08-11 15:20:43 · 182 阅读 · 0 评论 -
线程学习:Callable实现原理
使用线程中,有时候 我们需要获取子线程执行后的返回值,这时候我们可以用到Callable接口,实现该接口重写call方法,返回一个封装后的Future对象。Callable<Integer> subTask = new Callable<Integer>() { @Override public Integer call() throws...原创 2019-08-15 22:54:14 · 426 阅读 · 0 评论