Java多线程-Java多线程实现
1,继承Thread类
2,实现Runnable接口
1,继承Thread类
2,实现Runnable接口
3,多线程实现数据共享
1,继承Thread类
package com.yhc.process;
public class ThreadTest extends Thread {
private int baozi = 1;
private String threadName;
public String getThreadName() {
return threadName;
}
public void setThreadName(String threadName) {
this.threadName = threadName;
}
@Override
public void run() {
while (baozi < 10){
System.out.println(threadName + "吃第" + baozi + "个包子");
baozi++;
}
}
public static void main(String[] args) {
ThreadTest t1 = new ThreadTest();
t1.setThreadName("张三");
ThreadTest t2 = new ThreadTest();
t2.setThreadName("李四");
t1.start();
t2.start();
}
}
输出结果:
张三吃第1个包子
李四吃第1个包子
张三吃第2个包子
李四吃第2个包子
张三吃第3个包子
李四吃第3个包子
张三吃第4个包子
李四吃第4个包子
张三吃第5个包子
李四吃第5个包子
张三吃第6个包子
李四吃第6个包子
张三吃第7个包子
李四吃第7个包子
张三吃第8个包子
李四吃第8个包子
张三吃第9个包子
李四吃第9个包子
2,实现Runnable接口
package com.yhc.process;
public class ThreadTest2 implements Runnable{
private int baozi = 1;
private String threadName;
public String getThreadName() {
return threadName;
}
public void setThreadName(String threadName) {
this.threadName = threadName;
}
public void run() {
while (baozi < 10){
System.out.println(threadName + "吃第" + baozi + "个包子");
baozi ++;
}
}
public static void main(String[] args) {
ThreadTest2 t1 = new ThreadTest2();
t1.setThreadName("张三");
ThreadTest2 t2 = new ThreadTest2();
t2.setThreadName("李四");
Thread t11 = new Thread(t1);
Thread t22 = new Thread(t2);
t11.start();
t22.start();
}
}
3,多线程实现数据共享
package com.yhc.process;
public class ThreadTest3 implements Runnable{
private int baozi=1;
public void run() {
while (baozi < 10){
System.out.println(Thread.currentThread().getName() + "吃第" + baozi +"个包子");
baozi++;
}
}
public static void main(String[] args) {
ThreadTest3 t1 = new ThreadTest3();
Thread t11 = new Thread(t1,"张三");
Thread t22 = new Thread(t1,"李四");
t11.start();
t22.start();
}
}