java 多线程Thread与Runnable的区别
来源:互联网 发布:三菱plc与伺服编程实例 编辑:程序博客网 时间:2024/05/21 23:39
1.Runnable适合多线程操作同一资源。
2.Runnable接口可以避免java单继承带来的局限
3.Runnable增强代码健壮性,代码被多个线程共享
测试:
package main.uitls;public class Demo {public static void main(String[] arg0){Mythread m1 = new Mythread();Mythread m2 = new Mythread();Mythread m3 = new Mythread();m1.start();m2.start();m3.start();/*MyRunnable myRunnable =new MyRunnable();Thread m1 = new Thread(myRunnable);Thread m2 = new Thread(myRunnable);Thread m3 = new Thread(myRunnable);m1.start();m2.start();m3.start();*/}}class Mythread extends Thread{public int num = 5;public void run() {for(int i=100;i > 0;i--){if(num>0){System.out.println("当前剩余票数:"+num--);}}}}class MyRunnable implements Runnable{public int num = 5;public void run() {for(int i=100;i > 0;i--){if(num>0){System.out.println("当前剩余票数:"+num--);}}}}当使用Thread时,多个线程之间数据没有共享,返回的结果为(每次运行结果可能不同)
当前剩余票数:5当前剩余票数:4当前剩余票数:3当前剩余票数:5当前剩余票数:2当前剩余票数:5当前剩余票数:1当前剩余票数:4当前剩余票数:3当前剩余票数:2当前剩余票数:4当前剩余票数:1当前剩余票数:3当前剩余票数:2当前剩余票数:1当使用Runnable时县城之间数据共享:
MyRunnable myRunnable =new MyRunnable();Thread m1 = new Thread(myRunnable);Thread m2 = new Thread(myRunnable);Thread m3 = new Thread(myRunnable);m1.start();m2.start();m3.start();结果为:
当前剩余票数:5当前剩余票数:3当前剩余票数:4当前剩余票数:1当前剩余票数:2
阅读全文
1 0
- java 多线程 Thread与Runnable的区别
- java 多线程Thread与Runnable的区别
- Java多线程Runnable与Thread的区别
- java多线程的runnable与thread的区别
- java多线程里Thread类与Runnable接口的区别
- java多线程之Thread与runnable的区别
- 慕课网--细说java 多线程 thread与runnable的区别
- java 多线程 Thread和Runnable的区别
- Java多线程Thread和Runnable的区别
- Java多线程Thread与Runnable
- java中Thread与Runnable的区别
- java中Thread与Runnable的区别
- java中Thread与Runnable的区别
- java中Thread与Runnable的区别
- java中Thread与Runnable的区别
- java中Thread与Runnable的区别
- java中Thread与Runnable的区别
- Java中Thread与Runnable的区别
- BZOJ 1095 Hide 捉迷藏 详解(动态点分治 堆维护)
- java 将字符串追加到文件已有内容后面
- Linux文件系统编程
- 第四章:Django模型——在 admin 后台管理页面上面添加 Event 发布会名称
- ubuntu network is unreachable 解决记
- java 多线程Thread与Runnable的区别
- android studio 工作区间背景颜色设置眼睛保护色
- Acer主板装系统报reboot and select proper boot device
- 今日小程序推荐:香蕉打码-二维码随意生成
- mysql锁表问题
- 如何在禅道或者网页使用MarkDown样式
- 登录页的锚链节
- Java_基础—自定义异常概述和基本使用
- iOS多线程--彻底学会多线程之GCD