博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程学习一:创建线程
阅读量:5052 次
发布时间:2019-06-12

本文共 1895 字,大约阅读时间需要 6 分钟。

线程创建有两个方法:

  • 创建Thread或者其子类
  • 执行start()方法

创建线程的方法也有两个:

一、实现Runnable接口的run方法

1 public class ThreadTest implements Runnable { 2  3     @Override 4     public void run() { 5         for (int i = 0; i < 100; i++) 6             System.out.println(Thread.currentThread().getName() + "........"+i); 7  8     } 9 10     public static void main(String[] args) {11         ThreadTest aa = new ThreadTest();12         ThreadTest bb = new ThreadTest();13         Thread t1 = new Thread(aa);14         Thread t2 = new Thread(bb);15         t1.start();16         t2.start();17         18 19     }20 21 }

 

二、继承Thread类重写run方法

1 public class ThreadExtendsTest extends Thread {  2  3     ThreadExtendsTest(String name) { 4         super(name); 5     } 6  7     @Override 8     public void run() { 9         for (int i = 0; i < 100; i++) {10             System.out.println(this.getName() + "..." + i);11         }12     }13 14     public static void main(String[] args) {15         ThreadExtendsTest aa = new ThreadExtendsTest("aa");16         ThreadExtendsTest bb = new ThreadExtendsTest("bb");17         aa.start();18         bb.start();19     }20 21 }

 

其它:多个线程共享同一份资源

1 public class ThreadTest implements Runnable { 2     private int count = 300; 3  4     @Override 5     public void run() { 6         for (int i = 0; i < 100; i++) 7             System.out.println(Thread.currentThread().getName() + "........" + count--); 8     } 9 10     public static void main(String[] args) {11         ThreadTest aa = new ThreadTest();12         Thread t1 = new Thread(aa);13         Thread t2 = new Thread(aa);14         Thread t3 = new Thread(aa);15         t1.start();16         t2.start();17         t3.start();18 19     }20 21 }

 

注意:

  • 两个线程的执行时间并不是平均分配的,而是根据JVM调度的。
  • Thread类中有带线程名值的创建方法,而且如果不创建名字,系统也会自动生成线程名称。
  • 当两个线程都执行start()方法之后,同时在跑的有三个线程,当两个副线程的run()方法执行完毕以后,结束线程并且只剩下一个主线程。

转载于:https://www.cnblogs.com/gforce/p/5894184.html

你可能感兴趣的文章
Qt中QTableView中加入Check列实现
查看>>
“富豪相亲大会”究竟迷失了什么?
查看>>
控制文件的备份与恢复
查看>>
返回代码hdu 2054 A==B?
查看>>
Flink独立集群1
查看>>
iOS 8 地图
查看>>
20165235 第八周课下补做
查看>>
[leetcode] 1. Two Sum
查看>>
iOS 日常工作之常用宏定义大全
查看>>
PHP的SQL注入技术实现以及预防措施
查看>>
MVC Razor
查看>>
软件目录结构规范
查看>>
Windbg调试Sql Server 进程
查看>>
linux调度器系列
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>
SVN服务器搭建和使用(三)(转载)
查看>>
Android 自定义View (三) 圆环交替 等待效果
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
HEVC播放器出炉,迅雷看看支持H.265
查看>>