`
adamzhao
  • 浏览: 100954 次
  • 性别: 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还没有执行完。

    
分享到:
评论

相关推荐

    rt-thread入门教程PPT

    * RT-Thread 的内存管理包括堆栈的概念 * RT-Thread 的应用场景包括安防、医疗、新能源、车载、导航和消费电子等 * RT-Thread 的优点包括高度稳定可靠、高度可移植、高度可扩展等 * RT-Thread 的开发环境包括 KEIL ...

    5,RT Thread操作系统教程及资料_rtthread_RT-Thread_

    对于初学者,首先理解实时操作系统的基本概念,然后通过搭建环境和运行示例来熟悉RT Thread的基础操作。接着,可以深入学习API和开发工具,结合实例提升实践能力。最后,研究高级主题,提升系统设计和优化能力。 7...

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

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

    C#多线程之Thread中Thread.IsAlive属性用法分析

    在理解`Thread.IsAlive`属性的用法之前,我们需要先了解一些基本的线程概念。 1. **线程状态** - **新建(New)**:线程对象已被创建,但尚未调用`Start()`方法。 - **可运行(Runnable)**:`Start()`方法已调用...

    rt-thread邮箱_rtthread_RT-Thread_

    本篇将结合提供的压缩包文件,深入探讨RT-Thread的核心概念和关键组件。 1. **启动脚本与配置工具** - `startcmd.bat`:这是一个批处理文件,通常用于启动开发环境或者执行特定的编译或调试命令,简化开发流程。 ...

    ThreadX-中文文档

    #### 二、Picokernel结构与优势 - **Picokernel结构**:不同于传统的分层内核结构,ThreadX采用了Picokernel结构,即将服务直接整合进核心,减少了层级之间的转换,从而提高了性能和响应速度。 - **优点**: - **高...

    RealThread.RT-Thread.3.1.5.zip

    2. **Keil MDK与RT-Thread的结合** - Keil MDK是Arm公司出品的微控制器开发工具套件,支持C/C++编程,具有强大的调试功能,广泛用于ARM架构的嵌入式开发。 - "RealThread.RT-Thread.3.1.5.pack"是RT-Thread针对...

    tcl thread 在linux 下的安装包

    首先,我们需要了解TCL Thread的基本概念。在TCL中,线程是程序执行的独立路径,每个线程都有自己的堆栈空间,可以在不同的任务之间并行运行。通过创建和管理多个线程,开发者可以实现更复杂的并发操作,比如同时...

    rtthread_simulator_v0.1.0.7z

    这个压缩包中的工程可以帮助用户理解这些概念,并通过实际操作来加深理解。 2. **MDK项目工程**:MDK是常用的嵌入式C语言开发工具,支持多种微控制器。压缩包内的"project.uvoptx"和"project.uvprojx"是MDK项目的...

    ThreadX 中文手册

    通过阅读“ThreadX中文手册”,开发者不仅可以理解ThreadX的基本概念和原理,还能学习到如何配置和优化ThreadX以适应具体的应用场景。手册通常会包含示例代码和实践案例,以帮助读者更好地理解和应用ThreadX的各个...

    线程创建,线程等待与清除,thread_clean.c,thread_create.c,thread_create.c,thread_exit_struct.c,thread_id.c,thread_int.c, thread_join.c, thread_join.c, thread_string.c, thread_struct.c

    二、线程等待与清除 线程等待通常指的是一个线程(父线程)等待另一个线程(子线程)完成其工作,这通常通过`pthread_join()`函数实现,如`thread_join.c`所示。`pthread_join()`让调用线程阻塞,直到指定的线程结束...

    嵌入式实时操作系统的ThreadX中文版.rar

    在提供的"嵌入式实时操作系统的ThreadX中文版.pdf"文档中,预计会涵盖ThreadX的基本概念、安装步骤、API使用、系统配置、调试技巧以及一些实际应用案例。通过这份教程,工程师们可以深入理解ThreadX的内部工作原理,...

    ThreadX内核用户手册,含SMP多核(中文版)新.rar

    总的来说,ThreadX内核用户手册全面涵盖了RTOS的基础概念、高级特性以及多核环境下的应用,为开发者提供了宝贵的参考资料,帮助他们更好地理解和利用ThreadX来构建高效、可靠的嵌入式系统。通过深入学习和实践,...

    stm32的bootloader及移植的rtthread

    本文将深入探讨STM32 Bootloader的基本概念、设计原则以及如何移植RT-Thread实时操作系统。 Bootloader是嵌入式系统启动过程中的关键部分,它通常分为两个阶段:第一阶段(Stage 1)主要负责硬件初始化,包括复位、...

    RT-Thread.pdf

    RT-Thread对初学者而言,是一本入门级电子书教程,可以帮助初学者快速了解和掌握RTOS的基本概念和编程方法。 ### 核心组件和架构 1. **RT-Thread内核介绍**: - **线程调度**:决定了多个线程如何获得处理器的...

    Java Thread用法 经典

    2. **实现Runnable接口:** 创建一个实现`Runnable`接口的类,实现`run()`方法,并将该对象传递给`Thread`类的构造函数。 ```java public class MyRunnable implements Runnable { @Override public void run() ...

    本人制作的RT-Thread入门

    本教程旨在帮助初学者快速掌握RT-Thread的基本概念、架构以及实践操作。 ### 第一节:RT-Thread简介 RT-Thread是一个轻量级的操作系统,其主要特点是微内核设计,支持抢占式调度,能够满足嵌入式设备的实时性需求...

    RT thread在STM32F429实现finish shell功能

    在STM32F429上实现RT Thread的finish shell功能,首先需要理解几个关键概念: 1. **RT Thread Shell**: RT Thread 提供的Shell模块是一个基于文本的命令行接口,类似于Linux的shell,允许用户通过串口或其他通信...

Global site tag (gtag.js) - Google Analytics