目录

情景:循环创建一类线程,这类线程的run()方法不能立即结束,如包含循环等。

问题:创建线程后,启动线程时,使用run()方法则需要等待线程的run()方法先结束,否则阻塞;使用start()方法启动线程,则立即开始创建下一个线程。

测试代码及结果如下:


 情景:循环创建一类线程,这类线程的run()方法不能立即结束,如包含循环等。

问题:创建线程后,启动线程时,使用run()方法则需要等待线程的run()方法先结束,否则阻塞;使用start()方法启动线程,则立即开始创建下一个线程。

测试代码及结果如下:

package thread_test;class Thread_test extends Thread{//线程类@Overridepublic void run() {while(true);//线程的功能函数中含有死循环}
}
public class For_Thread {public static void main(String[] args) {for(int i=0;i<4;i++) {//使用循环创建线程Thread_test t = new Thread_test();t.start();//使用start()方法,不会阻塞System.out.println(i);}}
}
package thread_test;class Thread_test extends Thread{//线程类@Overridepublic void run() {while(true);//线程功能函数中存在不能立即结束的循环}
}
public class For_Thread {public static void main(String[] args) {for(int i=0;i<4;i++) {//循环创建线程Thread_test t = new Thread_test();t.run();//使用run()方法会阻塞System.out.println(i);}}
}

当线程的run()函数可以立即结束时,启动线程时,使用run()方法可以立即结束

Java使用循环创建多个线程相关推荐

  1. Linux系统编程---13(线程控制函数,创建线程,循环创建多个线程,线程间共享全局变量)

    线程控制 操作系统并没有提供创建线程的系统调用接口,因此大佬们封装了一个线程的接口库实现线程控制.意为着用户创建线程都使用的是库函数(所以有时候我们说创建的线程是一个用户态线程,但是在内核中对应有一个 ...

  2. java for循环创建线程_Java创建线程的两种方法

    大多数情况,通过实例化一个Thread对象来创建一个线程.Java定义了两种方式: 实现Runnable 接口: 可以继承Thread类. 下面的两小节依次介绍了每一种方式. 实现Runnable接口 ...

  3. Java:使用Executors创建和管理线程

    http://zhangjunhd.blog.51cto.com/113473/70068/ 1. 类 Executors 此类中提供的一些方法有: 1.1 public static Executo ...

  4. Linux系统编程:fork函数的使用【循环创建N个子线程】

    fork函数介绍 在linux下面进行系统编程,一定要养成一个好习惯,不懂的函数 直接 找男人,用man 指令进行查看,虽然是全英文 但是要强迫自己 学会看英文文档!下面是介绍,我们看重点. FORK ...

  5. Java 多线程练习---创建两个子线程,每个线程交替输出“你好--来自线程***”...

    |--需求说明 |--实现思路 1.创建一个类,实现Runnable,在这个类里面重写run()方法,在run()方法里面写一个20的for循环 2.创建一个类,实例化上面的类,用这个类的对象创建线程 ...

  6. Linux系统编程:循环创建N个子线程并顺序输出

    实现代码 代码很简单,如下.但是也有坑!在给线程传参数的不能穿 循环遍历i 的 地址,因为 i 在主线程中 ,被多个线程共享,所以不是唯一的.那么如何让每个线程 都有独自拥有自己的顺序编号呢? 1.方 ...

  7. java结束全部操作代码_Java创建与结束线程代码示例

    这篇文章主要介绍了Java创建与结束线程代码示例,小编觉得挺不错的,这里分享给大家,供需要的朋友参考. 本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者.一些高级知识如线程 ...

  8. java创建线程代码_Java创建与结束线程代码示例

    本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者.一些高级知识如线程同步.调度.线程池等内容将会在后续章节中逐步深入. 创建线程 创建普通线程有两种方式,继承Thread类 ...

  9. java 线程中创建线程_如何在Java 8中创建线程安全的ConcurrentHashSet?

    java 线程中创建线程 在JDK 8之前,还没有办法在Java中创建大型的线程安全的ConcurrentHashSet. java.util.concurrent包甚至没有一个名为Concurren ...

最新文章

  1. PHP图片裁剪_图片缩放_PHP生成缩略图
  2. 高级C语言教程-关键字和运算符
  3. Java趣味分享:try/finally
  4. 关于C++里面使用set_union,set_intersections、set_merge、set_difference、set_symmetric_difference等函数的使用总结
  5. 计算机网络安全-RSA加密原理
  6. 现代软件工程系列 学生读后感 梦断代码 软件难做
  7. 计算机网络专业运动会入场式,高校运动会方阵入场式花样百出
  8. matlab各种分布计算公式,SPC常见项目的计算公式
  9. .NET pfx文件解析私钥和公钥
  10. 如何成为很厉害的程序员?- 读《精进》
  11. RecyclerView 官方分割线
  12. CSS中禁止文本选中和鼠标悬入变手型(已解决)
  13. 如何提升数据思维能力?
  14. 2023安徽大学计算机考研信息汇总
  15. 送餐界的扛把子又稳了
  16. java什么是线程安全_什么是线程安全?
  17. 【算法1-3】暴力枚举——First Step
  18. 用python练习日语五十音图
  19. 微信开发——开放标签
  20. 50种语言的圣诞快乐

热门文章

  1. C语言中 . 和 - 区别详解(举例解释)
  2. 开源10轴IMU PCB,基于MEMS传感器MPU6500-HMC5983-AK8975-BMP280-MS5611设计,适用于多轴无人机、平衡车、惯导入门
  3. 移远EC600S-CN (4) - MQTT接入阿里云
  4. 【Linux】完美解决 nginx 的权限问题( Permission denied)
  5. 配置 springboot 的 run dashboard
  6. UML图中时序图和协作图转化
  7. Apache配置SSL证书指引
  8. ArcGis连接oracle失败:ORA-6413:连接未打开
  9. 微信JS图片上传与下载功能--微信JS系列文章(三)
  10. npm+node+cordova+ionic 版本匹配