![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
荒野求思
人生就像写代码,总有bug出现
展开
-
Sleep和wait的区别
第一个区别:sleep是静态方法,wait是祖先类Object的成员方法:Sleep是一个静态的方法,使用Thread类来调用,在哪个线程中调用了该方法,哪个线程休眠;Wait方法是object类的方法,和对象相关,表示的是使得当前线程对象(线程实例)等待。看下面的代码:package hello_java;public class Sleep_Wait { pu...原创 2018-11-13 18:40:31 · 414 阅读 · 0 评论 -
OS(进程和线程,Thread和Runnable实现多线程,Runnable接口,线程的生命周期(sleep,join,wait,yield等),并发和并行)
目录 进程和线程:Thread和Runnable实现多线程Runnable接口:线程的生命周期面:sleep和wait的区别?演示join: 进程和线程:进程:是资源分配的基本单位;每个进程都有自己独立的代码和数据空间(进程上下文);一个进程包含1-n个线程;进程之间的切换会有较大的开销,进程之间的数据交互和信息交互也非常的耗时。进程是属于OS层级的概念,和语...原创 2018-12-20 15:08:07 · 705 阅读 · 0 评论 -
并行,JUC,并发(卖票),线程通信(生产者消费者问题))
并发和并行并发: 多个线程抢一份资源。比如说12306 抢票。并行:泡方便面。正常追求效率的情况下,撕调料包的情况下,烧热水。比如说一个人执行了多个任务,在听歌的时候走路。关于两者的区别关注下面的这个连接:The Differences并发会引发的问题,(线程的安全问题)说个窗口卖票的问题:package com.isea.mybatis;class Ticket...原创 2018-11-13 18:42:46 · 223 阅读 · 0 评论 -
线程循环屏障
场景需求:7个人开始,7个人到场之后,会议可以开始package hello_java;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;public class Tool02 { public static void main(Strin...原创 2018-11-12 21:04:34 · 162 阅读 · 0 评论 -
多线程之线程闭锁
假设现在有一个需求,模拟有一个小组四个人,需要打扫卫生,扫完之后班主任锁门。好的,我们来实现一下:package hello_java;public class Tool01 { public static void main(String[] args) throws InterruptedException { for (int i = 1; i <= ...原创 2018-11-12 20:54:38 · 393 阅读 · 0 评论 -
多线程之读写锁
先看案例,如下package hello_java;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ReadAndWrite { public static void main(String[] args) { ...原创 2018-11-12 20:38:24 · 219 阅读 · 0 评论 -
多线程之定制调度
需求:模拟3*10mi的接力赛,分别有三个线程,A , B,C 分别打印1 - 10 , 11 - 20 , 21 - 30 并且完成线程的顺序交替打印。实现代码如下:其实可以使用jon来实现,但是这样做的效率并不是很高。package hello_java;import java.util.concurrent.locks.Condition;import java.util.c...原创 2018-11-12 15:04:33 · 146 阅读 · 0 评论 -
多线程之线程信号量semaphore
需求说明:6辆车抢占三个停车位package hello_java;import java.util.Random;import java.util.concurrent.Semaphore;public class Tool03 { public static void main(String[] args) { Semaphore semaphore =...原创 2018-11-12 21:18:53 · 148 阅读 · 0 评论 -
多线程之线程内存的可见性
先看下面的代码和运行的结果:package hello_java;public class MemoryVisiable { public static void main(String[] args) { ShareData02 shareData = new ShareData02(); new Thread(() ->{ ...原创 2018-11-12 19:16:02 · 294 阅读 · 0 评论