创建线程的几种方式
2019-10-25 07:03:28来源:博客园 阅读 ()
创建线程的几种方式
继承Thread类
public class ExtendsThreadTest extends Thread {
@Override
public void run() {
System.out.println("thread is running!");
}
public static void main(String[] args) {
ExtendsThreadTest et1 = new ExtendsThreadTest();
et1.start();
}
}
实现Runnable接口
public class RunnableTest implements Runnable{
@Override
public void run() {
System.out.println("thread is running!");
}
public static void main(String[] args) {
Thread t1 = new Thread(new RunnableTest());
t1.start();
}
}
匿名内部类的两种写法
public class App {
public static void main(String[] args){
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("thread1 is running!");
}
}){}.start();
new Thread(){
@Override
public void run(){
System.out.println("thread2 is running!");
}
}.start();
}
}
基于java.util.concurrent.Callable工具类的实现,带返回值
public class CallableTest {
public static void main(String[] args) throws Exception {
Callable<Integer> call = new Callable<Integer>() {
@Override
public Integer call() throws Exception {
System.out.println("thread is running!");
return 1;
}
};
FutureTask<Integer> task = new FutureTask<>(call);
Thread t = new Thread(task);
t.start();
}
}
基于java.util.Timer工具类的实现
public class TimerTest {
public static void main(String[] args) throws Exception {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("thread is running!");
}
}, new Date());
}
}
基于java.util.concurrent.Executors工具类,基于线程池的实现
public class ThreadPoolTest {
public static void main(String[] args) {
// 创建线程池
ExecutorService threadPool = Executors.newFixedThreadPool(10);
while(true) {
threadPool.execute(new Runnable() { // 提交多个线程任务,并执行
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + " is running ..");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
}
}
更多信息可以关注我的个人博客:逸竹小站或逸竹小站
也欢迎关注我的公众号:yizhuxiaozhan,二维码:
原文链接:https://www.cnblogs.com/coder2017/p/11729391.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- eclipse下创建Maven项目(包含webapp目录结构) 2020-06-09
- SpringBoot通过web页面动态控制定时任务的启动、停止、创建 2020-06-09
- 最详细的java多线程教程来了 2020-06-08
- 系统化学习多线程(一) 2020-06-08
- 多线程:生产者消费者(管程法、信号灯法) 2020-06-01
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash