随笔分类 - JUC
摘要:区别: 1.参数 execute Runnable submit Callable 2.返回值 execute :void submit :Future 3.异常 execute 会在子线程中抛出异常,在主线程捕捉不到 submit 不会字码抛出异常, 而是会讲一次暂时存起来,等Future.get
阅读全文
摘要:package org.example.c2; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import j
阅读全文
摘要:什么是线程池? 我们使⽤线程的时候就去创建⼀个线程,这样实现起来⾮常简便,但是就会有⼀个问题: 如果并发的线程数量很多,并且每个线程都是执⾏⼀个时间很短的任务就结束了,这样频繁创建线程就 会⼤⼤降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有⼀种办法使得线程可以复⽤,就是执⾏完⼀个任
阅读全文
摘要:使用Runnable,Thread实现的线程都无法返回结果。 而Callable创建的线程可以, start 异步执行 当子线程还未执行完 主线程运行到 get方法 会等待子线程执行完 package org.example.test1; import lombok.extern.slf4j.Slf
阅读全文
摘要:New:初始状态 (未调用start )刚刚创建完 Runnable:运行状态 执行start Blocked:阻塞状态 Waiting:等待状态 通过Join sleep等方法使线程在等待 Timed Waiting :计时等待状态 sleep join 等方法设置了参数 Terminated:终
阅读全文
摘要:守护线程: setDaemon(true):设置守护线程 应用: 垃圾回收器线程 属于守护线程 tomcat用来接受处理外部的请求的线程就是守护线程
阅读全文
摘要:主要来说就是主线程等待子线程 可以设置参数(1000)就是等待子线程一秒 如果子线程中要执行3秒 则还是主线程先执行完 package org.example.test1; import java.util.concurrent.TimeUnit; public class JoinThread {
阅读全文
摘要:Thread.yield():方法作用是:暂停当前正在执行的线程对象(及放弃当前拥有的cup资源),并执行其他线程 yield():做的是让当前运行线程回到可运行的状态,以允许具有相同优先级的其他线程获得运行机会。因此,使用目的是让相同优先级的线程之间能适当的轮转执行。但是,实际中无法保证yield
阅读全文
摘要:类型: run方法是同步 而start是异步 作用: run方法的作用是存放任务代码 ,start的方法是启动线程 线程数量方面: 执行run方法,他不会产生新线程,而执行start方法hi产生新线程 调用次数 run方法可以被执行无数次,而start方法只能被执行一次,原因在于线程不能被重复启动。
阅读全文