package async; import java.util.ArrayList; import java.util.List; import java.util.Random; public class Main { static final int threadInitNumber = 2; public static void main(String[] args){ Counter counter = new Counter(); List<Thread> threads = new ArrayList<Thread>(); for(int i=0;i<threadInitNumber;i++){ threads.add(new Thread(new Async(counter),"thread" + i)); } for(Thread thread : threads){ thread.start(); } } } /* * 线程干扰:多个线程访问共享对象的非原子性操作时,会线程竞争,从而产生线程干扰 * * 模拟线程干扰 */ class Async implements Runnable{ private Counter counter = new Counter(); public Async() { } public Async(Counter counter) { super(); this.counter = counter; } @Override public void run() { Random random = new Random(); while(true){ if(random.nextInt(10)<5){ print("execute increment:" + counter.current()); counter.increment(); }else{ if(counter.current()>0){ print("execute decrement:" + counter.current()); counter.decrement(); } } print("counter current value:" + counter.current()); if(random.nextInt(100)==1){ print("exit thread......................"); return; } } } void print(String content){ System.out.println(Thread.currentThread().getName() + " ---> " + content); } } class Counter { private int count = 0; public int current(){ return count; } public int increment(){ return count++; } public int decrement(){ return count--; } }
相关推荐
Java 模拟线程并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发 Java, 模拟线程并发,线程,并发
java多线程模拟队列实现排队叫号,多线程模拟排队叫号取号 java多线程模拟队列实现排队叫号,多线程模拟排队叫号取号
Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式...
Java的线程和Java AppletJava的线程和Java AppletJava的线程和Java AppletJava的线程和Java AppletJava的线程和Java Applet
java线程实践,了解线程死锁,同步问题
Java多线程读大文件 java多线程写文件:多线程往队列中写入数据
Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-优先级 ...
Java 线程系列博文总结word化,编目如下,欢迎互相学习交流: Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:...
java多线程PPT 多线程基本概念 创建线程的方式 线程的挂起与唤醒 多线程问题
Java线程:概念与原理 2 一、操作系统中线程和进程的概念 2 二、Java中的线程 3 三、Java中关于线程的名词解释 3 四、线程的状态转换和生命周期 4 Java线程:创建与启动 7 Java线程:线程名称的设定及获取 10 Java...
java多线程经典案例,线程同步、线程通信、线程阻塞等经典案例
一个java 多线程操作数据库应用程序!!!
电子书相关:包含4个有关JAVA线程的电子书(几乎涵盖全部有关线程的书籍) OReilly.Java.Threads.3rd.Edition.Sep.2004.eBook-DDU Java Thread Programming (Sams) java线程第二版中英文 java线程第二版中英文 ...
详细的讲解了java多线程的原理,并配有代码进行实战,适合java初学者和想对多线程有进一步了解的人。
Java线程Java线程Java线程Java线程Java线程Java线程
Java线程讲解Java线程讲解Java线程讲解Java线程讲解Java线程讲解Java线程讲解Java线程讲解Java线程讲解Java线程讲解Java线程讲解
单线程 单线程 单线程 单线程 单线程 单线程
模拟实现多线程处理银行的实时转账交易,代码完整,可以完美运行~
java多线程并发查询数据库,使用线程池控制分页,并发查询。
该文档总结了Java多线程相关的知识点,分享给大家,简单易懂!