1 Star 4 Fork 0

sumAll/Java编程思想(第四版)

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Threads.java 4.24 KB
一键复制 编辑 原始数据 按行查看 历史
sumAll 提交于 4年前 . java
package net.mindView.threads;
import java.util.concurrent.TimeUnit;
//方式1:直接继承Thread类
public class Threads extends Thread {
private int countDown = 5;
private static int threadCount = 0;
public Threads(){
super(Integer.toString(++threadCount));
start();
}
public void run(){
while(true){
System.out.println(this);
if(--countDown == 0)
return;
}
}
}
//方式2:实现Runnable接口
class SelfManaged implements Runnable{
private int countDown = 5;
private Thread t = new Thread(this);
public SelfManaged(){ t.start(); }
public void run(){
while(true){
System.out.println(this);
if(--countDown == 0)
return;
}
}
}
//方式3:创建继承Thread的内部类
class InnerThread1{
private int countDown = 5;
private Inner inner;
private class Inner extends Thread{
Inner(String name){
super(name);
start();
}
public void run(){
try{
while(true){
System.out.println(this);
if(--countDown == 0)
return;
sleep(10);
}
}catch (InterruptedException e){
System.out.println(e);
}
}
}
public InnerThread1(String name){
inner = new Inner(name);
}
}
//方式4:创建匿名内部类
class InnerThread2{
private int countDown = 5;
private Thread t;
public InnerThread2(String name){
t = new Thread(name){
public void run(){
try{
while(true){
System.out.println(this);
if(--countDown == 0)
return;
sleep(10);
}
}catch (InterruptedException e){
System.out.println(e);
}
}
};
t.start();
}
}
//方式5:创建实现了Runnable接口的内部类
class InnerRunnable1{
private int countDown = 5;
private Inner inner;
private class Inner implements Runnable{
Thread t;
Inner(String name){
t = new Thread(this,name);
t.start();
}
public void run(){
try{
while(true){
System.out.println(this);
if(--countDown == 0)
return;
TimeUnit.MILLISECONDS.sleep(100);
}
}catch (InterruptedException e){
System.out.println(e);
}
}
}
public InnerRunnable1(String name){
inner = new Inner(name);
}
}
//方式6:创建实现了Runnable接口的匿名内部类
class InnerRunnable2{
private int countDown = 5;
private Thread t;
public InnerRunnable2(String name){
t = new Thread(new Runnable() {
@Override
public void run(){
try{
while(true){
System.out.println(this);
if(--countDown == 0)
return;
TimeUnit.MILLISECONDS.sleep(100);
}
}catch (InterruptedException e){
System.out.println(e);
}
}
},name);
t.start();
}
}
//方式7:在一个方法中开启一个线程
class ThreadMethod{
private int countDown = 5;
private Thread t;
private String name;
public ThreadMethod(String name){ this.name = name; }
public void runTask(){
if(t==null){
t = new Thread(name){
public void run(){
try{
while(true){
System.out.println(this);
if(--countDown == 0)
return;
sleep(100);
}
}catch (InterruptedException e){
System.out.println(e);
}
}
};
t.start();
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/sumall/Thinking-in-Java.git
git@gitee.com:sumall/Thinking-in-Java.git
sumall
Thinking-in-Java
Java编程思想(第四版)
master

搜索帮助