JAVA多线程
文章平均质量分 94
帅得真的是无敌了
这个作者很懒,什么都没留下…
展开
-
Java多线程_线程池ThreadPoolExecutor
Executor的子接口是ExecutorService,ExecutorService的唯一子实现类AbstractExecutorService,AbstractExecutorService的子类ThreadPoolExecutor。使用Executors工厂类的newCachedThreadPool()方法创建无界线程池,并且进行复用线程池中线程,只需要创建的线程闲置后即复用。原创 2023-02-07 16:41:01 · 1129 阅读 · 0 评论 -
Java多线程_并发集合框架
Iterator接口是集合框架的父接口,Collection接口继承了Iterator接口;而接口List、Set、Queue继承了Collection接口;而Deque接口继承了Queue接口。使用接口继承接口可以让继承的接口对被继承的接口进行扩展。List接口的实现类中的元素是有序可重复的,而Set接口的实现类中的元素是无序不可重复的。接口Queue支持对表头的操作,而Deque对Queue进行扩展,也支持对表尾进行操作。java.util.Concurrent包下的类都是线程安全的。原创 2023-01-14 20:59:52 · 1240 阅读 · 0 评论 -
Java多线程_多线程的补充
线程在不同的运行时期存在不同的状态,状态信息存在于State枚举类中。在调用与线程有关的方法后,线程会进入不同的状态。线程可以处于NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED六种状态。创建包threadstate.test,在包下创建类Run即在new一个MyThread线程对象时,会调用构造方法中输出执行构造方法的线程的状态,以及MyThread线程的状态。然后再次打印MyThread线程对象的状态,然后启动线程,启动后调用运行run原创 2022-12-06 20:13:30 · 553 阅读 · 1 评论 -
Java多线程_定时器和单例模式
Timer类的主要作用就是设置计划任务,即在指定的时间开始执行某一个任务。封装任务的类却是TimerTask(抽象类)的子类。schedule(TimerTask task,Date time),作用是在指定的日期执行一次某一任务。schedule(TimerTask task,Date firstTime,long period),作用是在指定日期之后按指定的间隔周期无限循环的执行某一任务。原创 2022-11-30 15:04:18 · 1094 阅读 · 0 评论 -
JAVA多线程2_Lock
使用Condition对象,Condition对象是跟ReentrantLock对象绑定的。Condition有await和signal、signalAll方法,通过awiat方法使线程进入等待状态,signal唤醒线程,signalAll唤醒全部线程。通知部分线程时,可以使用创建多个Condition实例,通过调用指定的Condition对象的signal/signalAll方法唤醒指定部分的线程。原创 2022-11-25 19:34:17 · 466 阅读 · 0 评论 -
Java多线程
变量的并发访问(1)执行完notify后,按照执行wait的顺序唤醒其他线程,notify所在的同步代码块执行完才会释放对象锁,最后其他线程继续执行wait后的代码。(2)在同步代码块中,遇到异常导致线程终止,锁也会被释放。(3)在同步代码块中,执行了锁对象的wait方法,这个线程会立即释放对象锁,等待被唤醒。(4)一生产一消费可以使用wait/notify机制,条件判断可以用if。其中只要有一个属于多时,就要使用wait/notifyAll,并且条件判断要用while。原创 2022-11-22 14:51:33 · 319 阅读 · 0 评论