java多线程案例
来源:互联网 发布:mac os怎么分区 编辑:程序博客网 时间:2024/06/06 02:45
java笔试题:用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。
我写了如下程序,感觉是对的,欢迎指正!
package thread2;public class Mythread implements Runnable{private int temp =100;@Overridepublic void run() {if(Thread.currentThread().getName().equals("Thread-2")||Thread.currentThread().getName().equals("Thread-3")){jiajia();}else if(Thread.currentThread().getName().equals("Thread-0")||Thread.currentThread().getName().equals("Thread-1")){jianjian();}}public synchronized void jiajia(){temp++;try {Thread.sleep(1000);System.out.println(Thread.currentThread().getName()+" temp 被加上1,现在temp="+temp);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}} public synchronized void jianjian(){temp--;try {Thread.sleep(1000);System.out.println(Thread.currentThread().getName()+" temp 被减去1,现在temp="+temp);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
package thread2;public class ThreadTest {public static void main(String[] args) {Mythread mythread = new Mythread();new Thread(mythread).start();new Thread(mythread).start();new Thread(mythread).start();new Thread(mythread).start();}}
输出结果:
Thread-0 temp 被减去1,现在temp=99
Thread-3 temp 被加上1,现在temp=100
Thread-2 temp 被加上1,现在temp=101
Thread-1 temp 被减去1,现在temp=100
我看了一些相关的例子,总结了一下:
①一个主类A,有主函数,
②一个基础类B,基础类中有用synchronized修饰的方法
③一个实现了Runnable接口的线程类C,其中②中的基础类B是③中 类的成员变量,线程类的run方法中对基础类B进行并发访问
注:对于第③点,本例中的基础类就是成员变量temp,在网上有很多其他的例子差不多都是按照这个步骤来的。
- java多线程交互案例
- java多线程案例
- java多线程经典案例
- java 多线程 总结 案例
- java多线程案例
- java多线程简单案例入门
- java多线程的一个案例
- 【Java多线程】多线程案例:使用多线程向用户推送短信
- Java多线程之读写锁经典案例
- Java多线程生成文件性能分析案例
- Java多线程之线程分类【案例分析】
- JAVA多线程的一个简单案例
- Java多线程经典案例-生产者消费者
- Java 多线程Timer 与 TimerTask 小案例
- Java多线程:实现一个死锁案例
- Java.SE01.多线程_案例01
- Java.SE01.多线程_案例02
- Java.SE01.多线程_案例03
- 问题5解决方案
- 8.4.2:比较运算符
- web开发之表单验证
- p45-002
- Shell 问题记录
- java多线程案例
- 问题6解决方案
- 观察者模式lua实现
- 全排列
- HDFS(第一部分)
- gradle - 使用介绍(一)
- OS LanguageID
- c++ more
- \\192.168.0.138 登陆不上需要密码解决方法