Java多线程-Java多线程实现 0
来源:互联网 发布:网络mg老虎机技巧规律 编辑:程序博客网 时间:2024/06/05 02:30
Java多线程-Java多线程实现
1,继承Thread类
2,实现Runnable接口
3,多线程实现数据共享
1,继承Thread类
package
com.java1234.chap09.sec02;
public
class
Thread1
extends
Thread{
private
int
baoZi=
1
;
private
String threadName;
public
Thread1(String threadName) {
super
();
this
.threadName = threadName;
}
@Override
public
void
run() {
while
(baoZi<=
10
){
System.out.println(threadName+
" 吃"
+baoZi+
"第个包子"
);
baoZi++;
}
}
public
static
void
main(String[] args) {
// 张三 李四一起吃包子 每人吃10个
Thread1 t1=
new
Thread1(
"张三线程"
);
Thread1 t2=
new
Thread1(
"李四线程"
);
t1.start();
t2.start();
}
}
运行输出:
张三线程 吃1第个包子
张三线程 吃2第个包子
张三线程 吃3第个包子
张三线程 吃4第个包子
张三线程 吃5第个包子
张三线程 吃6第个包子
张三线程 吃7第个包子
张三线程 吃8第个包子
张三线程 吃9第个包子
张三线程 吃10第个包子
李四线程 吃1第个包子
李四线程 吃2第个包子
李四线程 吃3第个包子
李四线程 吃4第个包子
李四线程 吃5第个包子
李四线程 吃6第个包子
李四线程 吃7第个包子
李四线程 吃8第个包子
李四线程 吃9第个包子
李四线程 吃10第个包子
2,实现Runnable接口
package
com.java1234.chap09.sec02;
public
class
Thread2
implements
Runnable{
private
int
baoZi=
1
;
private
String threadName;
public
Thread2(String threadName) {
super
();
this
.threadName = threadName;
}
@Override
public
void
run() {
while
(baoZi<=
10
){
System.out.println(threadName+
" 吃"
+baoZi+
"第个包子"
);
baoZi++;
}
}
public
static
void
main(String[] args) {
// 张三 李四一起吃包子 每人吃10个
Thread2 t1=
new
Thread2(
"张三线程"
);
Thread2 t2=
new
Thread2(
"李四线程"
);
Thread t11=
new
Thread(t1);
Thread t12=
new
Thread(t2);
t11.start();
t12.start();
}
}
运行输出:
张三线程 吃1第个包子
张三线程 吃2第个包子
李四线程 吃1第个包子
张三线程 吃3第个包子
李四线程 吃2第个包子
李四线程 吃3第个包子
李四线程 吃4第个包子
李四线程 吃5第个包子
李四线程 吃6第个包子
李四线程 吃7第个包子
李四线程 吃8第个包子
张三线程 吃4第个包子
李四线程 吃9第个包子
李四线程 吃10第个包子
张三线程 吃5第个包子
张三线程 吃6第个包子
张三线程 吃7第个包子
张三线程 吃8第个包子
张三线程 吃9第个包子
张三线程 吃10第个包子
3,多线程实现数据共享
package
com.java1234.chap09.sec02;
public
class
Thread3
implements
Runnable{
private
int
baoZi=
1
;
private
String threadName;
public
Thread3(String threadName) {
super
();
this
.threadName = threadName;
}
@Override
public
synchronized
void
run() {
while
(baoZi<=
10
){
System.out.println(threadName+
" 吃"
+baoZi+
"第个包子"
);
baoZi++;
}
}
public
static
void
main(String[] args) {
Thread3 t1=
new
Thread3(
"超级张三线程"
);
Thread t11=
new
Thread(t1);
Thread t12=
new
Thread(t1);
Thread t13=
new
Thread(t1);
t11.start();
t12.start();
t13.start();
}
}
运行输出:
超级张三线程 吃1第个包子
超级张三线程 吃2第个包子
超级张三线程 吃3第个包子
超级张三线程 吃4第个包子
超级张三线程 吃5第个包子
超级张三线程 吃6第个包子
超级张三线程 吃7第个包子
超级张三线程 吃8第个包子
超级张三线程 吃9第个包子
超级张三线程 吃10第个包子
这里我们定义一个实例 然后用这个实例来是实例化三个Thread对象,run方法我们要加synchronized锁,否则会出现多个线程同时进入方法的情况,导致多个线程吃同一个包子;
- Java多线程-Java多线程实现 0
- Java多线程-Java多线程实现
- Java 多线程(多线程的实现)
- Java实现多线程编程
- Java中实现多线程
- java 如何实现多线程
- java多线程实现
- Java多线程:实现方式
- java实现多线程
- java实现多线程下载
- Java 多线程的实现
- JAVA多线程实现方式
- Java多线程的实现
- Java实现多线程同步
- JAVA实现多线程下载
- Java多线程实现
- java实现多线程下载
- java实现多线程同步
- 移动端的坑和解决方案
- 几种改进的谱减算法简介
- 39 WebGL着色器和着色器程序对象:initShader()函数的作用
- C++网络编程(3)
- java实现单例模式
- Java多线程-Java多线程实现 0
- 文件互传密码配置用户及组管理
- Android 安全规约
- Java多线程-线程的状态
- Linux 运行级别
- dd命令使用详解
- Java多线程-线程常用方法
- Java中String相同字符串的地址是否想同??
- java截取字符串之subString