![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程编程
小马哥MAX
刷题记录BLOG
展开
-
一个线程打印1~52,另一个线程打印A~Z,打印顺序是12A34B...5152Z
当多个线程需要协同完成一件事时,可以加锁+wait,notify一起完成。思路分析,一个线程打印数字,每次打印两个数字,26次打印完,另一个线程打印字母,也是26次打印完;可以创建两个方法,一个方法打印数字,一个打印字母;还有创建一个全局变量用来控制具体执行的是哪个线程;每个方法都被执行26次。public class Solution1006 { public static v...原创 2018-11-14 11:08:55 · 730 阅读 · 0 评论 -
子线程循环打印10次,主线程循环打印100次,这样循环5次
思路:跟一个线程打印1~52,另一个线程打印A~Z一样,也是synchornized+wait,notify方法;难点在于主线程的启动不需要start方法,因为程序的入口是main方法,在执行这个程序的时候,主线程已经启动了;public class Solution1006 { public static void main(String[] args) { MyO...原创 2018-11-14 11:24:27 · 612 阅读 · 0 评论 -
生产者消费者模型实现
1、使用BlockingQueuemain.classpublic class Solution1006 { public static void main(String[] args) { //Creating shared object BlockingQueue sharedQueue = new LinkedBlockingQueue();...原创 2018-11-14 16:15:11 · 142 阅读 · 0 评论 -
启动三个线程,每个线程将自己的ID值在屏幕上打印5遍,打印顺序是ABCABC...
三线程协同问题,使用synchronized + wait + notifyAll实现定义一个对象,将方法都同步,每个方法都用一个线程启动,对象之间有个全局变量,线程通过全局变量的设置来控制线程执行顺序。main.classpublic class Solution1006 { public static void main(String[] args) { ...原创 2018-11-14 16:35:13 · 569 阅读 · 0 评论 -
打印数字1-20,一个线程打印奇数,一个线程打印偶数
main.classpublic class Solution1006 { public static void main(String[] args) { MyObject my = new MyObject(); new Thread(new Runnable() { @Override pu...原创 2018-11-14 16:43:33 · 1043 阅读 · 0 评论 -
设计四个线程,其中两个线程每次对变量i加1,另外两个线程每次对i减1.
说明:MyObj类为功能函数(加1和减1)以及变量i的存储地方。这里采用AtomicInteger类来保证一致性假设每个线程处理3次public class Main { public static void main(String[] args){ MyObj myObj = new MyObj(); for(int i=0; i<...原创 2019-06-02 20:31:39 · 3415 阅读 · 0 评论 -
启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程2打印6,7,8,9,10, 然后是线程3打印11,12,13,14,15. 接着再由线程1打印16,17,18,19,20…
启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程2打印6,7,8,9,10, 然后是线程3打印11,12,13,14,15. 接着再由线程1打印16,17,18,19,20….以此类推, 直到打印到75.解题思路1:最常规死板的做法,缺点是有多少中线程同步就需要建多少中函数,所以本题需要建3个函数,其次对于打印到75这点需要自己算好循环次数,本题每种线程循环5次...原创 2019-06-02 21:01:12 · 6332 阅读 · 4 评论 -
写一个java死锁程序
只需要模拟持有并请求,即线程0获得A锁后又去请求B锁,线程1获得B锁后又去请求A锁,由于循环依赖导致彼此一直在等待。DeadLock.javapublic class DeadLock implements Runnable{ private String str1; //锁A private String str2; //锁B public D...原创 2019-06-17 14:42:58 · 432 阅读 · 0 评论