您现在的位置是:首页
>
python多线程数据交互 多线程成共享数据方式
多线程成共享数据方式 u lic cla MultiThreadShareData { /** * 多线程成共享数据 面试题 第一种 买票系统 方法 * 方式 :如果每个线程执行相同的代码 可以使用同
多线程成共享数据方式

public class MultiThreadShareData { /** * 多线程成共享数据 面试题 第一种 买票系统 方法 * 方式 :如果每个线程执行相同的代码 可以使用同一个Runable对象 这个Runable对象中有那个共享的数据 */ public static void main(String[] args) { ShareData data = new ShareData () new Thread(data) start() new Thread(data) start() } } class ShareData implements Runnable{ private int count = ; @Override public void run() { while(true){ count ; } } } ×××××××××××××××××××××××××××××××××××××××××××× public class MultiThreadShareData { /** * 多线程成共享数据(共享数据是指同一个对象) * 面试题 * 第二种方式 如果比如多个个线程执行代码不同比如以下示例一会加 一会减 测需要 个Runable 对象来操作 设计 个线程 其中 个线程每次对j增加 另外两个线程对J 每次减少 写出程序 */ public static void main(String[] args) { //共同对象 final ShareData data = new ShareData() new Thread(new Runnable(){//内部类 @Override public void run() { data sub() } }) start() new Thread(new Runnable(){ @Override public void run() { data add() } }) start() } } class ShareData { private int j= ; public synchronized void add(){ j++; } public synchronized void sub(){ j ; } } demo : 网上搜索的答案 /** * 第二种方式 如果比如多个个线程执行代码不同比如以下示例一会加 一会减 测需要 个Runable 对象来操作 设计 个线程 其中 个线程每次对j增加 另外两个线程对J 每次减少 写出程序 * @author Administrator * 这里 个Runnable都是内部类 可以访问外部类的成员变量 这里是 j 通过内部类调用外部类方法 J++ J */ public class ThreadTest { private int j; public static void main(String args[]) { ThreadTest tt = new ThreadTest () //必须通过外部类的对象才能实例化内部类 Inc inc = tt new Inc() Dec dec = tt new Dec() for (int i = ; i < ; i++) { Thread t = new Thread(inc) t start() t = new Thread(dec) t start() } } private synchronized void inc() { j++; System out println(Thread currentThread() getName() + inc: + j) } private synchronized void dec() { j ; System out println(Thread currentThread() getName() + dec: + j) } //内部类 增 class Inc implements Runnable { // 可以操作外部类的变量 j public void run() { for (int i = ; i < ; i++) { inc() } } } //内部类 减 class Dec implements Runnable { // 可以操作外部类的变量 j public void run() { for (int i = ; i < ; i++) { dec() } } } } lishixinzhi/Article/program/Java/gj/201311/27451
很赞哦! (1092)