
多线程
文章平均质量分 83
qq_27502511
这个作者很懒,什么都没留下…
展开
-
多线程编程
假设我们用一个Runable实例task来表示一个任务,我们直接调用task.run()来执行该任务,此时这个任务就是同步任务,如果使用new Thread(task).start()调用一个专门的工作者线程来执行该任务,或者将该任务提交给Executor实例executor执行,此时该任务为异步任务。Integer.MAX_VALUE:线程池中最大的线程数,当现在执行的线程数没有超过且没有空闲线程的时候,线程池会立即启动一个新的线程执行任务。60L:线程池中的线程等待时间超过60s后,会自动销毁。原创 2024-03-15 17:01:37 · 1020 阅读 · 0 评论 -
Java并发之ReentrantLock、CountDownLatch、CyclicBarrier、Semaphore
reentrantlock原创 2023-08-15 01:01:29 · 268 阅读 · 0 评论 -
关于System.out.println和Thread.sleep对多线程可见性的影响
我们知道共享变量是存储在主内存中的,每个线程使用的时候从主内存复制到自己的工作内存,所以线程在操作这个变量的时候是在自己的工作内存中,操作完毕才会将值刷新到主内存,也就是说其他线程刷新了主内存的值,而我们当前线程是无法感知的,会继续操作自己工作空间的值,进而最终导致主内存的共享变量不是我们预期的结果。我们看到do stop这个线程已经将stop修改为false,但是线程还没没终止,这就印证了我们的说法。是指当一个线程修改了某一个共享变量的值,其他线程是否能够立即知道这个修改。原创 2023-06-28 14:04:25 · 290 阅读 · 0 评论