`
adamzhao
  • 浏览: 99379 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Thread概念二

    博客分类:
  • Java
阅读更多
1,我们经常会说某些Class线程安全的,另外一些不是线程安全的。那么什么算是“线程安全”呢?
  
引用
A class is thread-safe if it behaves correctly when accessed from multiple threads, regardless of the scheduling or interleaving of the execution of those threads by the runtime environment, and with no additional synchronization or other coordination on the part of the calling code.

   要点:
   1,一个Class在多个线程访问的时候,能够“行为正确”。
   2,不论这些线程执行是scheduling或interleaving
   3,并且在调用代码(calling code)上不需要额外的同步或其他的协调。

2,Thread机制
   每个程序至少包含一个线程:run main方法的那个。其他的内部thread或者background thread也会在JVM初始化的时候开始。根据JVM的不同,这些thread数量不一。
   Thread Construction
   1)使用Runnable object来构造;Thread会在start的时候调用Runnable实现类的run()方法。
   2)使用String来构造;这个String只是用来标识Thread,一般用于Debug,和Track,在实际的编程中贡献不大。
   3)使用ThreadGroup来构造;
   两种方式去用Thread:override Thread类,实现run方法;实现Runnable接口。 Doug Lea推荐后者。理由是继承Thread有限制,而实现Runnable除了没有单继承的限制之外,还可以隔离代码。
   Thread中的daemon作用不大。
   在线程终止之后,再调用start会抛出异常InvalidThreadStateException。
  
   调用Thread的join()方法让我迷惑了好长时间,惠普电话面试的时候就答错了,汗一把~~现在终于看到一个明确的答案。
其实非常简单。假设有个Thread t,caller来调用t.join()方法。这时候会把caller挂起,先执行线程t,等待t执行完(dead)之后,caller再继续执行。不过如果t.isActive()返回false的话,这个t.join()会直接返回。
t.join()还有一个带时间参数的overload方法。调用这个方法的话,会在这个时间段结束后返回,即使t还没有执行完。

    
分享到:
评论

相关推荐

    关于C#中Thread.Join()的一点理解

     2.什么是a thread?  首先来看一下有关的概念: 我们执行一个.exe文件实际上是开启了一个进程,同时开启了至少一个线程,  但是真正干活的是线程,好比一个Team有好几个人,但是真正干活的是人不是Team.  ...

    RT-Thread实时操作系统编程指南

    • 实时系统概念:实时系统是一个什么样的系统,它的特点是什么; • RT-Thread快速入门,在无硬件平台的情况下,如何迅速地了解RT-Thread实时操作系统, 如何使用RT-Thread实时操作系统最基本的一些元素; • RT-...

    intel Thread checker ppt

    INTEL 软件学院讲解INTEL工具的PPT系列: ...03 多核编程基本概念 04 用OpenMP编程 05 Thread building block *06 Thread checker 07 Thread profiler 分开上传,大家看需求下载 intel软件学院_intel软件工具PPT

    CUDA学习----sp, sm, thread, block, grid, warp概念 .docx

    sp, sm, thread, block, grid, warp概念介绍。

    Thread 介绍文档

    介绍了 Thread 的一些技术概念,该技术主要是应用在国外居多,与 zigbee 技术类似。

    RT-Thread-Programming-Manual.pdf

    RT-Thread 是一款完全由国内团 队开发维护的嵌入式实时操作系统(RTOS),具有完全的自主知识产权。...这部编程指南,从概念到代码历程,从理论到实践,内容详尽而不枯燥,是应用 rt-thread 必备指南。

    Scheduling, Thread Context, and IRQL

    This paper presents information about how thread scheduling, thread context, and a processor’s current interrupt request level (IRQL) affect the operation of kernel-mode drivers for the Microsoft® ...

    一个使用thread类的windows应用实例

    大多数提供给初学者的关于多线程学习的实例都是控制台程序,并不能很好的理解,本实例使用WINDOWS编程说明的多线程的概念。

    INTEL Thread profiler ppt

    INTEL 软件学院讲解INTEL工具的PPT系列: ...03 多核编程基本概念 04 用OpenMP编程 05 Thread building block 06 Thread checker *07 Thread profiler 分开上传,大家看需求下载 intel软件学院_intel软件工具PPT

    RT-thread RTOS系统概述

    RT-thread RTOS系统概述,RTX内核可以轻松地使用实时执行器,该实时执行器为基于ARM CPU核的微控制器提供。RTX内核提供了一组C函数以及C宏,可以让开发者使用在CPU中并行运行的任务去创建实时运用程序。这个部分提供...

    03 多核编程基本概念

    INTEL 软件学院讲解INTEL工具的PPT系列: 01 Intel 处理器结构 ...03 多核编程基本概念 04 用OpenMP编程 05 Thread building block 06 Thread checker 07 Thread profiler 分开上传,大家看需求下载

    posix thread多线程编程指南

    《多线程编程指南》介绍了SolarisTM ...要理解本指南,读者必须熟悉并发编程的概念: ■ UNIX® SVR4 系统-首选是Solaris 发行版。 ■ C 编程语言-多线程接口由标准C 库提供。 ■ 并发编程(与顺序编程相对)的原理。

    Thread building block

    INTEL 软件学院讲解INTEL工具的PPT系列: 01 Intel 处理器结构 ...03 多核编程基本概念 04 用OpenMP编程 05 Thread building block 06 Thread checker 07 Thread profiler 分开上传,大家看需求下载

    智能多线程库auto_thread:文档

    智能多线程库auto_thread是一个基于posix pthread的跨平台C++多线程库,支持互斥量,条件量,读写锁,信号量概念. 有三个版本: VC++版(2010),mingw版(4.6+)和linux版. 本资源是auto_thread的使用文档 也可直接访问: ...

    python中的线程threading.Thread()使用详解

    1. 线程的概念: 线程,有时被称为轻量级进程...2. threading.thread()的简单使用 2.1 python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用 import threa

    线程的基本概念、线程类、任务类、线程优先级、sleep()方法、yield()方法、join方法、interrupt()方法

    线程的基本概念、线程类、任务类、线程优先级、sleep()方法(休眠)、yield()方法(礼让)、join方法(合并)、interrupt()方法(中断),线程的生命周期 线程 与 进程 的关系:**有一个进程中至少包含一个线程 **...

    java线程池概念.txt

    Thread t = threadFactory.newThread(w);//使用线程工厂创建一个线程 if (t != null) { w.thread = t; workers.add(w);//保存线程池正在运行的线程 int nt = ++poolSize;//线程池的线程数加1 if (nt > ...

    java_thread_cn.rar_Java 线程池_java thread books_java线程_线程池_线程池调度

    中文文档,其目录如下: 线程中一些基本术语和概念 线程之间的通讯 Java线程调度 线程池 工作队列

    【RT-Thread作品秀】基于RT-Thread的姿态解算控制平台设计-电路方案

    卡尔曼滤波没有阶数的概念,而NNI-BP逼近的滤波特性具有一定延迟 卡尔曼滤波器的主要控制参数(基于现实过程噪声和观测噪声)不可控,转移矩阵协方差矩阵需测得; NNI-BP逼近 的主要 控制参数(学习速率和动量因子)...

    【RT-Thread作品秀】车载环境参数采集终端-电路方案

    通过学习RT-Thread,我学到了很多很多以前从未接触到的概念,编程思想等等,让我对MCU编程有了全新的认识。尤其是其对象的概念,让我对嵌入式编程有了全新的理解。在此之前我还在裸机,寄存器,外设,驱动包等等之间...

Global site tag (gtag.js) - Google Analytics