经典Peterson算法解决互斥锁的并发的Java实现
来源:互联网 发布:淘宝拍卖手表有假货吗 编辑:程序博客网 时间:2024/06/05 09:24
Peterson算法是一个实现互斥锁的并发程序设计算法,可以控制两个进程访问一个共享的单用户资源而不发生访问冲突。
public class Peterson implements Runnable { private static boolean[] in = { false, false }; // 主观地表示某一个进程是否希望使用资源 private static volatile int turn = 0; // 客观地表示哪一个进程有权使用进程 public static void main(String[] args) { new Thread(new Peterson(0), "Thread - 0").start(); new Thread(new Peterson(1), "Thread - 1").start(); } private final int id; public Peterson(int i) { id = i; } private int other() { return id == 0 ? 1 : 0; } @Override public void run() { int cnt = 5; while(cnt-- > 0){ in[id] = true; // 表示本进程想使用资源 turn = other(); // 谦让,把使用进程的权限让给对方进程 while (in[other()] && turn == other()) { // 如果对方进程想使用资源,且对方进程有使用资源的权限时,本进程等待 System.out.println("[" + id + "] - wait..."); } System.out.println("-------------------[" + id + "] Working"); in[id] = false; // 本进程用完资源后,必须表示不再想用资源 } }}
https://zh.wikipedia.org/wiki/Peterson%E7%AE%97%E6%B3%95
http://stackoverflow.com/questions/2911915/peterson-algorithm-in-java
- 经典Peterson算法解决互斥锁的并发的Java实现
- Dekker算法和Peterson算法解决互斥锁的并发的Java实现
- 互斥的软件实现:Peterson算法和Dekker算法
- 进程(线程)互斥的软件实现--皮特森(Peterson)算法
- 用Peterson算法实现临界区的控制
- 解决临界区(互斥)的软件方法-Dekker算法和Peterson算法
- 进程间同步临界区的Peterson算法
- Peterson算法、test_and_set在有限等待上的说明
- 用java实现的经典递归算法
- 用java实现的经典递归算法
- Java 实现的经典排序算法
- java实现的经典排序算法
- 一些经典排序算法的java实现
- 常见经典排序算法的java实现
- 经典算法问题的java实现<一>
- 经典算法问题的java实现<二>
- 用java实现的经典递归算法
- Peterson 算法
- QtCreator源码分析—4.核心插件
- 二叉树先序,中序,后序遍历非递归实现
- 多种设计模式文章(备忘,有空多阅读)
- 算法习题63:字符串删除特定字符
- 数组中随机选择n个数
- 经典Peterson算法解决互斥锁的并发的Java实现
- NYOJ 325zb的生日
- Android高手进阶教程(十一)之----Android 通用获取Ip的方法(判断手机是否联网的方法)!
- Linux/Unix下去除windows下换行符^M
- json-c-0.9 在linux上编译使用
- Mac apache-tomcat 安装
- 离群值
- Android高手进阶教程(十二)之----Android 在一个应用中如何启动另外一个已安装的应用!
- APK使用命令重新签名