import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadDemo implements Runnable {
private String name;
public ThreadDemo(String name) {
this.name = name;
}
@Override
public void run() {
System.out.printf("线程%s开始执行.%n", this.getName());
for (int i = 0; i < 100; i++) {
System.out.printf("%s:%d%n", this.getName(), i);
}
System.out.printf("线程%s执行完毕.%n", this.getName());
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) throws IOException, InterruptedException {
ExecutorService es = Executors.newCachedThreadPool(); //创建一个线程池
es.execute(new ThreadDemo("线程1")); //加入到线程池
es.execute(new ThreadDemo("线程2"));
es.execute(new ThreadDemo("线程3"));
es.execute(new ThreadDemo("线程4"));
es.shutdown(); //关闭线程池
}
}
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadDemo implements Runnable {
private String name;
public ThreadDemo(String name) {
this.name = name;
}
@Override
public void run() {
System.out.printf("线程%s开始执行.%n", this.getName());
for (int i = 0; i < 100; i++) {
System.out.printf("%s:%d%n", this.getName(), i);
}
System.out.printf("线程%s执行完毕.%n", this.getName());
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) throws IOException, InterruptedException {
ExecutorService es = Executors.newCachedThreadPool(); //创建一个线程池
es.execute(new ThreadDemo("线程1")); //加入到线程池
es.execute(new ThreadDemo("线程2"));
es.execute(new ThreadDemo("线程3"));
es.execute(new ThreadDemo("线程4"));
es.shutdown(); //关闭线程池
}
}