联合线程 join()问题

问题描述

class ThreadDemo1{public static void main(String []args){Thread tt=new TestThread();tt.start();int index =0;while(true){if(index++ == 100) try { tt.join(); } catch(Exception e) { System.out.println(e.getMessage()); }System.out.println("main"+Thread.currentThread().getName());}}}class TestThread extends Thread{public void run(){while(true){System.out.println("run"+Thread.currentThread().getName());}}}//上面的程序是让两个 线程交替执行 然后再将子线程合并到主线程中去的 但是打印出的结果是这样的runThread-0 一直循环 为什么会只有一个线程呢 应该有两个的请朋友帮忙看看

解决方案

我觉得是不是因为index太小导致一个线程还没执行就join变成一个了?试试加大index的值或者sleep一下?

时间: 2024-11-03 06:51:42

联合线程 join()问题的相关文章

cakephp2.X多表联合查询join及使用分页查询的方法

本文实例讲述了cakephp2.X多表联合查询join及使用分页查询的方法.分享给大家供大家参考,具体如下: 格式化参数: public function getconditions($data){ $this->loadModel("Cm.LoginHistory"); $conditions = array(); foreach ($data as $key=>$val){ if($key=='start_date'){ $conditions['LoginHistor

黑马程序员 六、线程技术

Java帮帮-IT资源分享网  六.黑马程序员-线程技术 第六篇  1.进程和线程 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中 可以有多个线程.比如在 Windows 系统中,一个运行的 xx.exe 就是一个进程. Java 程序的进程里有几个线程:主线程, 垃圾回收线程(后台线程) 线程是指进程中的一个执行任务(控制单元),一个进程中可以运行多个线程,多个线程可共享 数据. 多进程:操作系统中同时运行的多个程序; 多线程:在同一个进程中同时运行的多个任务

Python线程中对join方法的运用的教程_python

join 方法:阻塞线程 , 直到该线程执行完毕 因此  ,可以对join加一个超时操作 , join([timeout]),超过设置时间,就不再阻塞线程 jion加上还有一个后果就是, 子线程和主线程绑定在一起 , 直到子线程运行完毕,才开始执行子线程. 代码 有join: 在CODE上查看代码片派生到我的代码片 #-*- coding: UTF-8 -*- import threading from time import sleep def fun(): 在CODE上查看代码片派生到我的代

Java线程编程中isAlive()和join()的使用详解_java

一个线程如何知道另一线程已经结束?Thread类提供了回答此问题的方法. 有两种方法可以判定一个线程是否结束.第一,可以在线程中调用isAlive().这种方法由Thread定义,它的通常形式如下: final boolean isAlive( ) 如果所调用线程仍在运行,isAlive()方法返回true,如果不是则返回false.但isAlive()很少用到,等待线程结束的更常用的方法是调用join(),描述如下: final void join( ) throws InterruptedE

join 方法

  返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来. arrayObj.join(separator) 参数 arrayObj 必选项.Array 对象. separator 必选项.是一个 String 对象,作为最终的 String 对象中对数组元素之间的分隔符.如果省略了这个参数,那么数组元素之间就用一个逗号来分隔. 说明 如果数组中有元素没有定义或者为 null,将其作为空字符串处理. 示例 下面这个例子说明了 join 方法的用法. function J

3线程的终止方式,线程属性,NPTL

 1线程终止方式 如果需要只终止某个线程而不终止整个线程,可以有三种方法: A:从主线程函数return.这种方法对主线程不适合,从main函数return相当于调用exit. B:一个线程可以调用pthread_cancel终止同一进程中的另一个线程. C:线程可以调用pthread_exit终止自己   同一个进程的线程间,pthread_cancel向另一个线程发终止信号.系统不会马上关闭被取消线程,只有在被取消线程下次系统调用时,才会真正结束线程.或调用pthread_testcan

java 线程 理解 解析

1 线程的概述 进程:正在运行的程序,负责了这个程序的内存分配,代表了内存中的执行区域. 线程:就是在一个进程中负者一个执行路径. 多线程:就是在一个进程中多个执行路径同时执行. 假象: 电脑上的程序同时在运行."多任务"操作系统同时运行多个进程(程序)--但实际 是由于CPU分时机制的作用,使每个进程都能循环获得自己的CPU时间片.但由于轮换速 度非常快,使得所有程序好像是在"同时"运行一样. 多线程的好处: 解决了一个进程里面可以同时运行多个任务(执行路径) 提

《Java线程与并发编程实践》—— 1.2 操作更高级的线程任务

1.2 操作更高级的线程任务 之前的线程任务都和如何配置一个线程对象以及启动关联的线程相关.不过,Thread类也能支持更多高级的任务,包括中断其他线程.将线程join到另一条线程中以及致使线程睡眠. 1.2.1 中断线程 Thread类提供了一种线程可以中断其他线程的机制.当一个线程被中断时,它会抛出java.lang.InterruptedException.这一机制由下面的3种方法构成. void interrupt():中断调用此方法的Thread对象所关联的线程.当一条线程由于调用了T

《Java线程与并发编程实践》—— 1.4 小结

1.4 小结 Java应用程序通过线程执行,线程在程序代码中具有独立的执行路径.每个Java应用程序都有一个执行main()函数的默认主线程.应用程序也可以创建线程在后台操作时间密集型任务以确保对用户的响应.这些封装了代码执行序列的线程对象就称为runnables. Thread类为底层操作系统的线程体系架构提供一套统一接口(操作系统通常负责创建和管理线程).单个的操作系统线程关联为一个Thread对象. Runnable接口为关联Thread对象的线程提供执行代码.这些代码放在Runnable