public static Object obj1 = new Object(); public static void printAB(){ Thread t1 = new Thread(() -> { while (true){ synchronized (obj1) { System.out.println("T1:A"); obj1.notify(); try { Thread.sleep(1000); obj1.wait(); } catch (InterruptedE…
刚解决了之前的那个Linux下Pthread库的问题,这次就来使用两个线程来协作,共同完成一个求和的任务. 打一下基础吧 本次需要使用到的知识点有: lpthread,编译的时候用到,相当于一个声明的效果 pthread_mutex_t 作为一个锁对象而存在 pthread_create,创建一个新线程的函数调用 pthread_t ,线程的类型 代码展示 #include <stdio.h> #include <stdlib.h> //多线程库的引用 #include<pt…
研读: 1.http://www.mycat.io <Mycat权威指南> 第 2 章 Mycat 前世今生: 浏览: 深度认识 Sharding-JDBC:做最轻量级的数据库中间层 - 编辑部的故事的个人空间 - 开源中国 https://my.oschina.net/editorial-story/blog/888650 小结: 1.MyCAT 在 Cobar 的基础上,完成了彻底的 NIO 通讯,并且合并了两个线程池 2.MyCAT 解决此问题的方式则更加人性化,首先将原先数组模式的固定…
开启两个线程,一个线程打印A-Z,一个线程打印1-52的数据 import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class D20190803 { private char a='A'; private Lock lock = new ReentrantLock();…
题目: 写两个线程,一个线程打印1-52,另一个线程打印A-Z,打印顺序为12A34B56C......5152Z.要求用线程间的通信. /** * 写两个线程,第一个线程打印1-52,第二个线程打印A-Z,打印结果为12A34B...5152Z */public class ThreadPrinter { // true打印数字,false打印字母 private boolean flag = true; // 打印字母 public synchronized void printNumber…
//2019/06/13 本周HT面试遇到的问题,答得不是很好,自己重新做一下.面试只需要写出线程间通信的方式,//我当时大致知道思路,因为之前看过马士兵老师的多线程视频,但是代码写出来估计编译都是报错的.//线程通信方式public class ThreadTwo { //内部静态类,类去实现Runnable接口,obj通过构造方法,是希望这两个方法被一个参数锁住 public static class PrintABC implements Runnable{ Object o = null…
背景:是这样的今天在地铁上浏览了以下网页,看到网上一朋友问了一个多线程的问题.晚上闲着没事就决定把它实现出来. 题目: 1.开启两个线程,一个线程打印A-Z,两一个线程打印1-52的数据. 2.实现交替打印,输出结果为12A34B...........5152Z. 3.请用多线程方式实现. 这种只有两个线程交替打印数据的题目其实相对还是比较简单的,如果利用传统线程无非就是synchronized(线程互斥)与wait(),notify()的问题. 今天不用传统线程解决这个问题,我们用Java 1…
解题思路 实现一个类OddEven 有一个打印奇数的方法,有一个打印偶数的方法. 类中有一个volatile变量 ,用来控制当前状态是该哪个方法打印. 方法中打印每个数前首先判断volatile变量的状态,不该自己打印就使用Thread.yield()让出CPU,该自己就打印并调换状态. 在主函数中,两个线程共享一个OddEven实例,并调用打印奇数的方法或打印偶数的方法. 本质是线程的协作. 代码 class OddEven { int n; boolean flag = true;// fl…
题目:http://wenku.baidu.com/view/d66187aad1f34693daef3e8a.html 启动三个线程,分别打印A B C,现在写一个程序 循环打印ABCABCABC.... 本文分别使用wait.nofity和Semaphore来实现: wait.nofity版本 public class TestThread { public static void main(String[] args) { new Thread(new OrderThread(0,'A')…
我写的 class LN { private int flag = 0; public static char ch = 'A'; public static int n = 1; public synchronized void printLetter() { try { if(flag == 0 || flag == 1) { wait(); } else { //System.out.println("flag = " + flag); System.out.print(ch);…