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