线程跟main线程的关系

代码跟运行结果如下,本人只想知道main中的isAlive在t线程启动前为什么是死的,
在t线程启动后为什么是活的。两者有什么必然的联系呢。

 public class CountOperate extends Thread {

    public CountOperate() {
        System.out.println("CountOperate start");
        System.out.println("Thread.currentThread().getName = " + Thread.currentThread().getName());
        System.out.println("Thread.currentThread().isAlive = " + Thread.currentThread().isAlive());
        System.out.println("this.getName = " + this.getName());
        System.out.println("this.isAlive = " + this.isAlive());
        System.out.println("CountOperate end");
    }

    public void run() {
        System.out.println("run start");
        System.out.println("Thread.currentThread().getName = " + Thread.currentThread().getName());
        System.out.println("Thread.currentThread().isAlive = " + Thread.currentThread().isAlive());
        System.out.println("this.getName = " + this.getName());
        System.out.println("this.isAlive = " + this.isAlive());
        System.out.println("run end");
    }

}

 public class ThreadTest {
    private static final long count = 10000001;
    public static void main(String[] args) throws InterruptedException {
        CountOperate c = new CountOperate();
        Thread t = new Thread(c);
        System.out.println("main begin t isAlive = " + t.isAlive());
        t.setName("A");
        t.start();
        System.out.println("main end t isAlive = " + t.isAlive());
    }
}

运行结果

CountOperate start
Thread.currentThread().getName = main
Thread.currentThread().isAlive = true
this.getName = Thread-0
this.isAlive = false
CountOperate end
main begin t isAlive = false
run start
main end t isAlive = true
Thread.currentThread().getName = A
Thread.currentThread().isAlive = true
this.getName = Thread-0
this.isAlive = false
run end

0
扫码支付0.1元 ×
其他相关推荐
Java 进程与main方法
main方法,被JAVA虚拟机调用就是入口函数,生成一个主线程。被别的方法调用,那就只是一个普通的静态方法,就是说不生成新线程,而只是调用它的线程的一部分而已(main方法内具体什么功能,生成不生成新线程那是另外一回事)。  然后再说一下进程的事,main方法即便被当成入口函数被JAVA虚拟机调用,它也不会生成什么进程,或者说main方法跟进程就没半毛钱的关系,八竿子打不着。把这个搞混的只能说是把
队列和线程的关系
1.转载至http://www.cnblogs.com/dsxniubility/p/4296937.html 1.串行队列,同步执行 1 2 3 4 5 6 7 8 9 10 dispatch_queue_t q = dispatch_queue_create("d
多线程与CPU核心的关系
回答一:百度知道 每个单位时间内,一个CPU只能处理一个线程(操作系统:thread),以这样的单位进行,如果想要在一单位时间内处理超过一个线程是不可能的,除非是有两个CPU的实体单元。多核心技术是将多个一样的CPU放置于一个封装内(或直接将两个CPU做成一个芯片),而英特尔的HT技术是在CPU内部仅复制必要的资源、让CPU模拟成两个线程;也就是一个实体核心,两个逻辑线程,在一单位时间内处理两个...
用线程和不用线程的区别(代码说明)
在这里 有用线程和不用线程两种。 1点“用线程”按钮。在左边textbox会出现当前时间毫秒不断更新。因为用了线程所以这件事他是独立一个线程去做的。我可以同时做别的操作去。比如拖动窗口。 2 点”不用线程”按钮。左边textbox 会出现0到5000的数字跳动。但这时我不能对窗口做任何操作。因为程序只有一个线程,都被0加到5000的for循环占用了。我不能做别的事了。 可以看出,如果有一个操
java线程数的设置和cpu关系
cpu采用分片机制执行线程,给每个线程划分很小的时间颗粒去执行,但是真正的项目中,一个程序要做很多的操作,读写磁盘、数据逻辑处理,处于业务需求必要的休眠等等操作,当程序在进行I/O操作的时候,线程是阻塞的,线程由运行状态切换到等待状态,此时cpu会做上下文切换,以便处理其他的程序;当I/O操作完成后,cpu出收到一个来自硬盘的中断信号,并进入中断处理例程,手头正在执行的线程因此被打断,回到read...
线程同步与线程通道(锁)
※ 线程的同步 线程的职责就是执行一些操作,而多数操作都涉及到处理数据。这里有一个程序处理实例变量a: a+=i; a-=i; System.out.println(a); 多个线程在操纵共享资源——实例变量时,有可能引起共享资源的况争。为了保证每个线程能正常执行操作,保证共享资源能正常访问和修改。Java引入了同步进...
CPU和内存 程序(线程)关系
先来介绍下CPU: CPU容量小 需要别人给她指令但是运转速度快 主要是寄存器构成的 1. 通过控制器从内存中读入指令和数据到寄存器中并根据结果来控制整个计算机 2. 而运算器负责运算从内存读入的寄存器的数据 3. 时钟负责发出CPU开始计时的时钟信号 4. 运行速度:CPU>内存>硬盘 5. 只是用来运行指令 但是不能保存指令 指令是在内存中 6. 第一条指令是在...
线程数设置和CPU数的关系
我是搬运工,以下答案均来自于并发编程网(如何合理地估算线程池大小?)。我只是部分整理了一下。一般说来,大家认为线程池的大小经验值应该这样设置:(其中N为CPU的个数)如果是CPU密集型应用,则线程池大小设置为N+1如果是IO密集型应用,则线程池大小设置为2N+1(因为io读数据或者缓存的时候,线程等待,此时如果多开线程,能有效提高cpu利用率)如果一台服务器上只部署这一个应用并且只有这一个线程池,...
数据库连接数和线程数
前几天开发一个多线程执行的任务,在多线程执行的时候,一直在报错,如下: An attempt by a client to checkout a Connection has timed out. com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a res...
Linux下cpu数,核心数,线程数的关系
链接地址:http://blog.csdn.net/baidu_35679960/article/details/59484069        我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级。CPU从早期的单核,发展到现在的双核,多核。CPU除了核心数之外,还有线程数之说,下面笔者就来解释一下CPU的核心数与线程数的关系和区别。        简单地说,CP
java线程组和线程
java程序的线程组和线程的结构:main线程下创建thread8:Thread thread8 = new Thread(new ThreadGroup("hello"),"t8"); //获取顶层的system 线程组 while(tg.getParent()!=null){ //System.out.println(tg); tg = tg.getParent(); } //列
Runloop和线程的关系
runloop与线程是一一对应的,一个runloop对应一个核心的线程,为什么说是核心的,是因为runloop是可以嵌套的,但是核心的只能有一个 对于主线程来说,runloop在程序一启动就默认创建好了。 对于子线程来说,runloop是懒加载的,只有当我们使用的时候才会创建,所以在子线程用定时器要注意:创建子线程的runloop,不然定时器不会回调。
cpu个数、核数、线程数、Java多线程关系的理解
一 cpu个数、核数、线程数的关系 cpu个数:是指物理上,也及硬件上的核心数; 核数:是逻辑上的,简单理解为逻辑上模拟出的核心数; 线程数:是同一时刻设备能并行执行的程序个数,线程数=cpu个数 * 核数【如果有超线程,再乘以超线程数】 二 cpu线程数和Java多线程 首先明白几个概念: (1) 单个cpu线程在同一时刻只能执行单一Java程序,也就是一个线程 (2) 单个...
进程线程与栈、堆的关系
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程
Main函数中线程执行顺序
通过有个实例在体现学习的要点: public class Main { public static void main(String[] args) { Thread t = new Thread() { public void run() { print(); } }; t.start(); System.out.print("MT"); } static void
有关CPU,线程和进程的自我理解
所谓CPU:一个服务器,可以有多个CPU,一个CPU只可以同时处理一个任务,但是CPU的处理效率是非常快的,这里的非常快,是相对于RAM和其他 运行程序所需要的资源来说的,比如电脑的显卡。所谓进程:进程可以理解为一个基本程序的运行(一个程序的运行往往伴随着其他程序的辅助,也就是)。比如电脑上 qq,浏览器 ,可以分别看作是一个进程,进程的开启,会划分并占用一些资源比如,内存。下面说程序可以理解为...
进程丶线程丶CPU关系简述
进程丶线程丶CPU关系简述 博客分类:  java基础 进程线程CPUjava面向对象  本文简单阐述了进程与线程的关系,为了便于理解,本文也将简述CPU的工作原理。   进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。或者说进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和
java 虚拟机线程与操作系统内核线程之间的关系
java jdk 中 线程操作与虚拟机中线程操作之间的关系映射 在多cpu处理器中,一个cpu 可以映射多个 KLT指令集,一个KLT 又可以映射多个轻量级线程LWP,这里的 cpu KLT LWP 都是系统级的成员,一个轻量级线程 又对应着多个用户线程。 线程的实现方式可以有多种 1 内核线程实现 直接由操作系统内核支持的线程,内核通过操纵调度器来吧任...
线程中主线程与子线程之间的关系
1、最常见的情况,主线程中开启了一个子线程,开启之后,主线程与子线程互不影响各自的生命周期,即主线程结束,子线程还可以继续执行;子线程介素,主线程也能继续执行。 测试代码如下: public class TestThread{ public static void main(String[] args) throws InterruptedException { System.out.prin...
IOS对于线程队列的一些理解
第一部分:线程与队列 线程是代码执行的路径,队列则是用于保存以及管理任务的,线程负责去队列中取任务进行执行。 例如:在主线程调用如下代码 dispatch_sync(queue, ^{             task()           });  task函数这个任务将会提交到队列queue上,主线程负责去执行这个任务。 可以在task函数中log日志查看
【词汇详解】“生命周期”之为什么线程(或者安卓的activity等)要有生命周期
突然想到这个问题,,为什么线程或者安卓的activity等等,都要有个生命周期? 原因:在创建和销毁的中间有不同的状态,不同状态下可以干不同的事(解锁新功能)。 线程,就绪状态》阻塞状态》运行状态》 线程的生命周期就是:创建--》就绪--》运行--》阻塞--》销毁。(当然一般是运行完了才销毁) 安卓的activity,运行状态》暂停状态》停止状态》销毁状态》(暂停和停止两个状态区别
Android 中进程、线程的概念
一,Android 进程和线程进程-Process 是程序的一个运行实例,以区别于“程序”这一静态的概念,线程-Thread则是cpu调度的基本单位。一个进程的创建是通过Process.start()来完成的,其中的参数可以定制进程启动后最先执行的线程,通常会指定为ActivityThread,所以一个进程起来后先运行的就是这个主线程。Process会通过socket把创建进程的请求发给zygot...
线程和进程的区别【Android面试送命题】
这道题面试出现的概率是百分之70 下面我来讲下如何回答 1,进程是资源管理的最小单位,线程是程序执行的最小单位 2,每个进程都有自己的数据段 代码段 和堆栈段。线程 通常叫做 轻型的进程。它包含独立的栈和CPU寄存状态,每个线程共享其所附属进程的所有资源,包含打开的文件,内存页面,信号标识及分配内存等 3 ,线程比进程花费更小的CPU资源 4 ,在操作系统设计上,从进程演化出线程,最主要
进程、线程、CPU核数之间的关系(附加select细节)
前言:为什么要开线程? 目的 (1)是想等一个子程序执行完毕了,然后在继续操作!用启动线程,不然界面和别的进程无法工作,程序完了就完了没有如何效果和后续功能,然后用线程启动然后线程等待,比如摄像头不停的捕获图像,鼠标键盘任何时候输入都有效,开启后CPU会给这个进程分配专用的内存空间核cpu时间资源。 (2)其实很像中断函数一样,对一个函数开启线程后,当它处于等待IO发生动作后去执行比如键盘按...
android 进程和线程的区别,以及系统的进程的基本知识
进程是系统进行资源分配的独立单元 设计思想:为了允许多个程序同时在内存中运行特点 进程是程序的一次执行过程。若程序执行两次甚至多次,则需要两个甚至多个进程。 进程是是正在运行程序的抽象。它代表运行的CPU,也称进程是对CPU的抽象。(虚拟技术的支持,将一个CPU变幻为多个虚拟的CPU) 系统资源(如内存、文件)以进程为单位分配。 操作系统为每个进程分配了独立的地址空间 操作系统通过“调度”把控制权交
结合CPU跟内存浅谈进程与线程
讲起服务器的性能,有两个指标,不容忽视,那就是CPU跟内存。下面,结合CPU跟内存来讲一下我对进程跟线程的理解。
Java中的Main线程
原文地址:http://www.geeksforgeeks.org/main-thread-java/Java对多线程编程提供了内置的支持。一个多线程程序可以包含两个或者更多的并发部分。每一部分都称为一个线程,而且每个线程都定义为一个独立的执行路径。Main Thread当一个Java程序启动以后,有一个线程就会立马跑起来。这就是通常所说的Main线程,因为当我的程序一启动,它就开始执行了。属性 大
线程的基本概念及线程与进程的关系
关于线程与进程之间的关系,我觉得有一篇文章讲的很生动形象,这里贴出来供大家参考。进程与线程的一个简单解释 关于线程的理解,同样很生动形象的一个例子。我是一个线程 一. 线程、进程与线程的关系 1. 进程是资源管理的最小单位,线程是程序执行的最小单位。 2. 每个进程都有自己的数据段、代码段和堆栈段。线程是轻量级的进程,它包含独立的栈和CPU寄存器状态,线程是进程的一条执行路
Java的Main方法与Java进程之间的关系
Java应用程序的入口就是main方法()! 启动一个Java应用程序,就是要运用它的main方法,这时候就启动了一个Java虚拟机------在Windows下查看任务管理器,就会发现多出了一个javaw.exe的进程,这个就是java虚拟机!而main()方法其实是Java虚拟机这个进程的一个主线程(默认至少还有一个垃圾回收器的守护线程,所以运行一个java应用程序,启动了一个java进
main线程会比其他线程优先结束
最近在学习volatile时,看到一篇文章关于使用volatile进行同步同步控制利用线程实现计数器,代码如下: public class Main{ private static int count = 0; public static void plus() { try { Thread.sleep(1); } ca
讨论多线程与多核的关系
http://bbs.csdn.net/topics/270083226与http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html两篇文件对多核下的多线程调度与进程关系进行了讨论。综合讨论结果是,操作系统对线程的调度可以一个进程占多核跑多线程,也可以各个进程占一核且单核调度进程线程,具体按OS实现。
线程和子线程的关系
最近在和同事讨论java主线程和子线程之间的关系,自己也到网上搜索了下,发现各种答案都有,有些还是互相矛盾的。经过测试自己得出以下几个结论,跟大家分享下,如果有错误,欢迎大牛指正,帮助我这只小菜鸟。废话不多说,直接上结论: (一)Main线程是个非守护线程,不能设置成守护线程。               这是因为,main线程是由java虚拟机在启动的时候创建的。main方法开始执行
Java守护线程和main线程整理
Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。 Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的应用就是 GC (
Java中的main线程是不是最后一个退出的线程
Java中的main线程是不是最后一个退出的线程 个人blog原文地址:http://www.gemoji.me/when_main_thread_end/  之所以写这篇文章,是因为上次被人问到这么一个问题:“在main函数里启动一个定时器,是不是main函数执行完整个程序就退出了,包括那个定时器”。多说无益,直接写个程序测试一下就知道了。  Java代码  
子进程 和 线程 的区别
子进程和线程的区别相同点: 二者都具有ID,一组寄存器,状态,优先级以及所要遵循的调度策略; 每个进程都有一个进程控制块,线程也拥有一个线程控制块; 线程和子进程共享父进程中的资源;线程和子进程独立于它们的父进程,竞争使用处理器资源;线程和子进程的创建者可以在线程和子进程上实行某些控制,比如,创建者可以取消、挂起、继续和修改线程和子进程的优先级;线程和子进程可以改变其属性并创建新的资源; 不同的:
从mian()方法的创建说起:守护线程和非守护线程
创建一个mian()方法做了哪些事情? 创建方法 当我们创建了一个main()方法时,JVM为我们做了哪些事情?只是简单的开辟一个mian线程,执行mian()方法中的方法体吗? 用代码验证一下当前的线程情况 import java.lang.management.ManagementFactory; import java.lang.management.ThreadInfo; import...
论线程和线程池的区别及线程池的介绍
1.new Thread的弊端 a. 每次new Thread新建对象性能差。 b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。 c. 缺乏更多功能,如定时执行、定期执行、线程中断。 相比new Thread,Java提供的四种线程池的好处在于: a. 重用存在的线程,减少对象创建、消亡的开销,
main线程打印100此次“main”,新线程打印50次“new”。
9、通过实现Runnable接口的方式创建一个新线程,要求main线程打印100此次“main”,新线程打印50次“new”。 public class MyRunnable implements Runnable { public void run() { for (int i = 0; i < 50; i++) { System.out.println("new"); }
CPU的核心数、线程数的关系和区别
我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级。CPU从早期的单核,发展到现在的双核,多核。CPU除了核心数之外,还有线程数之说,下面笔者就来解释一下CPU的核心数与线程数的关系和区别。   简单地说,CPU的核心数是指物理上,也就是硬件上存在着几个核心。比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组,等等,依次类推。
进程、线程、端口间关系
进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。对于操 作系统而言,其调度单元是线程。一个进程至少包括一个线程,通常将该线程称为主线程。一个进程从主线程的执行开始进而创建一个或多个附加线程,就是所谓基于多线程的多任务。 端口是计算机与外界通讯的出口,端口将接收到的数据包给到指定的应用程序来处理。 进程或是线程可同时监听多个端口。
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 学习java线程 线程java学习

相似问题

1
c++,CreateThread在类中使用,要如何声明线程函数呢
1
c++ 11 在局部使用async()创建一个线程,当程序运行出局部区域时,为什么代码会阻塞等待线程执行结束?
4
写了一个测试类 打算创建一些线程 同时加一个数,然后发觉同步不了,不知道为什么
0
将session绑定线程后,为什么手动关闭session不会报已关闭Session错误。
1
如何利用线程机制设计自己创意一个多道程序?
2
关于生产消费线程,消费者重复执行的问题
1
c语言中如何理解参数是从线程
4
asp.net 后台开线程写脚本提示异常“ 响应在此上下文中不可用”
0
C语言加壳为什么修改CONTEXT之后恢复线程时程序还是会崩溃?求大佬指点
1
loadrunner中的三个组件算是线程吗
6
下面的代码怎么修改,才能保证线程里不报空指针异常
10
线程之间的切换会消耗系统性能为啥还用多线程?
1
delphi 怎样在线程里添加NMUDP控件的onDataRecieved事件?
1
ThreadPoolExecutor添加线程不执行,为什么
2
c#中自定义控件控制线程时,两个控件间相互影响,怎么避免?
2
python pyqt5 怎样暂停和退出指定线程?
1
ReentrantLock(true)为什么公平锁仍然会出现一个线程连续获得锁的情况?
1
c# wpf窗体 线程问题
1
写一个死锁示例,创建两个线程的代码看不出什么问题但是在命令行运行时只输出了一个线程是怎么回事?
1
C# 中线程死亡后资源会被自动回收释放内存吗