/**
*通过Executors.newFixedThreadPool(5)创建线程池的方法创建线程
**/
import java.util.Date;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public
class Test {
public
static
void main(String[] args) {
/**
* 创建线程数为5的线程池
*/
ExecutorService executorService = Executors.newFixedThreadPool(
5);
executorService.submit(
new MyTask());
executorService.shutdown();
}
private
static MyTask extracted() {
return
new MyTask();
}
}
class MyTask implements Runnable{
@Override
public
void run() {
while(
true) {
Date date =
new Date();
System.out.println(date);
try {
Thread.sleep(
1000);
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
*通过实现Runnable接口创建线程
*/
class Time implements Runnable {
SimpleDateFormat simpleDateFormat =
new SimpleDateFormat(
"yyyy年mm月dd日 HH:MM:ss");
Date
date =
new Date();
/**
* run方法是线程运行时候调用的方法,run方法结束之后,线程通常就终止了或者死亡了。
*/
@Override
public
void run() {
while (
true) {
String
str = simpleDateFormat.format(
date);
System.out.println(Thread.currentThread().getName()+
":"+
str);
try {
Thread.sleep(
2000);
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
*通过继承Thread类并且重写run方法创建线程
*/
class TimeThread extends Thread {
SimpleDateFormat simpleDateFormat =
new
SimpleDateFormat(
"yyyy/mm/dd HH:MM:ss");
Date date =
new
Date();
@Override
public void run() {
while (
true) {
String str = simpleDateFormat.format(date);
System.out.println(
Thread.currentThread().getName()+
":"+str);
try {
Thread.sleep(
2000);
}
catch (
InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
* 通过Executors.newSingleThreadExecutor()创建单一线程池,创建线程
*/
import java.util.Date;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public
class Test {
public
static
void main(String[] args) {
/**
* 创建单一线程的线程池
*/
ExecutorService executorService2 = Executors.newSingleThreadExecutor();
executorService2.submit(
new MyTask());
executorService2.shutdown();
}
private
static MyTask extracted() {
return
new MyTask();
}
}
class MyTask implements Runnable{
@Override
public
void run() {
while(
true) {
Date date =
new Date();
System.out.println(date);
try {
Thread.sleep(
1000);
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}