1,

2,

3,常用函数

Semaphore 
import java.util.concurrent.Semaphore;
Semaphore name=new Semaphore(n);
name.acquire(n1);
acquire.release(n2);

lock中的wait,notify,notifyAll

4,相关例题

Answer-1:

解决办法:

注意这里使用lock-synchronized同步以及屏障

package com.cnblogs.mufasa.demo1.Answer1114;

class Foo {
private boolean firstBlock;
private boolean secondBlock;
private Object lock=new Object(); public Foo() { } public void first(Runnable printFirst) throws InterruptedException { synchronized(lock){
// printFirst.run() outputs "first". Do not change or remove this line.
printFirst.run();
firstBlock=true;
lock.notifyAll();
} } public void second(Runnable printSecond) throws InterruptedException { synchronized(lock){
while(!firstBlock){
lock.wait();
}
// printSecond.run() outputs "second". Do not change or remove this line.
printSecond.run();
secondBlock=true;
lock.notifyAll();
} } public void third(Runnable printThird) throws InterruptedException { synchronized(lock){
while(!secondBlock){
lock.wait();
}
// printThird.run() outputs "third". Do not change or remove this line.
printThird.run();
}
}
}

Answer-2:

解决方法:

①定义一个布尔标识符flag,决定轮替输出;

②设置一个lock-synchronized同步;

package com.cnblogs.mufasa.demo1.Answer1115;

class FooBar {
private int n; private boolean flag=false;//定义一个布尔标识位
private Object lock=new Object();//同步锁 public FooBar(int n) {
this.n = n;
} public void foo(Runnable printFoo) throws InterruptedException { for (int i = 0; i < n; i++) {
synchronized (lock){
while (flag){
lock.wait();
}
// printFoo.run() outputs "foo". Do not change or remove this line.
printFoo.run();
flag=true;
lock.notifyAll();
}
}
} public void bar(Runnable printBar) throws InterruptedException { for (int i = 0; i < n; i++) {
synchronized (lock) {
while (!flag) {
lock.wait();
}
// printBar.run() outputs "bar". Do not change or remove this line.
printBar.run();
flag=false;
lock.notifyAll();
}
}
}
}

Java并发(思维导图)【待评估、删除】的更多相关文章

  1. JAVA并发思维导图

    原博客:https://blog.csdn.net/oqkdws/article/details/82145389

  2. java 基础-思维导图

    思维导图的好处 最近看了一些文章的思维导图,发现思维导图真是个强大的工具.了解了思维导图的作用之后,觉得把它运用到java上应该是个不错的想法,这样回顾知识点的时候一目了然,快速知道自己的短板. 思维 ...

  3. java基础思维导图,让java不再难懂

    java基础思维导图,让java不再难懂 原文链接  https://my.oschina.net/u/3080373/blog/873056 最近看了一些文章的思维导图,发现思维导图真是个强大的工具 ...

  4. java技术思维导图(转载)

      在网上看到有个人总结的java技术的东东,觉得很好,就保存下来了,码农还真是累啊,只有不断的学习才能有所提高,才能拿更多的RMB啊. java技术思维导图 服务端思维导图 前端思维导图

  5. Head First Java设计模式思维导图总结

    关于Head First Java设计模式的思维导图总结:

  6. 浅谈Java的主要学习要点_上海尚学堂java培训课程思维导图

    Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言.Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心.游戏控制台.科学超级计算机.移动电话和互联网,同时拥 ...

  7. Java相关思维导图分享

    非常多朋友都给我发私信希望获得一份Java知识的思维导图,我来不及一一答复.原先是给大家一个百度网盘的链接分享,大家能够自己去下载,可是不知道云盘还能用多久.把相关资源转移到了QQ的群共享中.须要的朋 ...

  8. 【xmind】 使用 Java 生成思维导图

    前言 在日常的工作与学习中,我们经常会使用思维导图这个工具,来把抽象而又无形的思考转换成有形并且具体的图像,是理清思路,梳理逻辑的一大神器. 准确的说,思维导图并不是一个具体的工具,而是一种方法.是道 ...

  9. java编程思想-并发思维导图

  10. 推荐:全新Java开发思维导图

    蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力.培训.出国.大公司的经历,还有很多很好的朋友. 但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员,可 ...

随机推荐

  1. puppeteer注入cookie然后访问页面

    var puppeteer = require('puppeteer'); const devices = require('puppeteer/DeviceDescriptors'); const ...

  2. WIN10环境下点击通知栏图标时自动切换输入法导致图标位置变动

    这个问题由来已久,每当点击系统右下角任务栏中的按钮时,原本是搜狗输入法就会自动变成“US [ 中文(简体,中国) ]”,图标会自动错位,导致响应的是其他功能. 假设上图是正常的环境,此时我点击电池图标 ...

  3. 冲刺总结——Day7

    [今日进展] 代码整合 码云链接:https://gitee.com/jxxydwt1999/20175215-java/tree/master/GoldPoint 功能测试 注册 登录 运行 [燃尽 ...

  4. ArcGIS超级工具SPTOOLS-MXD操作篇

    1.1  MXD批量裁剪 操作视频:https://weibo.com/tv/v/Hy7P6bF7d?fid=1034:4381332084881258 把当前窗口的MXD,按某个图层的某个字段批量裁 ...

  5. 树莓派根分区扩展至整张sd卡

    第一步,安装raspi-config sudo apt-get install raspi-config 第二步,运行raspi-config sudo raspi-config 界面选择,Expan ...

  6. 16. kubernetes RBAC

    16. kubernetes RBAC授权插件: Node,ABAC,RBAC,webhock RBAC: role based access contrl 基于角色的授权. 角色:(role)许可( ...

  7. win2008 r2下配置IIS7(ASP.net运行环境)

    一.常规配置: 1.先要设置应用程序池(ApplicationPool)为Classic.NETAppPool. 2.选中左侧的“应用程序池”,选中“Classic.NETAppPool”,单击右侧的 ...

  8. 一百三十五:CMS系统之UEditoe编辑器集成以及配置将图片上传到七牛

    富文本编辑框,选择UEditor 下载地址:http://ueditor.baidu.com/website/download.html 使用说明:http://fex.baidu.com/uedit ...

  9. [Bayes] *Bayesian Classifier for Face Recognition

    Bayesian在识别领域的贡献,着实吸引人 阅读笔记 Gabor特征 (简介,另单独详述) 通过上面的分析,我们知道了,一个Gabor核能获取到图像某个频率邻域的响应情况,这个响应结果可以看做是图像 ...

  10. Spring事务管理4-----声明式事务管理(2)

    声明式事务管理  基于AspectJ的 XML 方式配置 通过对事务管理器TransactionManager配置通知(增强),然后再配置切点和切面,详细见applicationContext.xml ...