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

Thread概念整理

    博客分类:
  • Java
阅读更多
1. 两种方式实现
   继承 java.lang.Thread和实现Runnable 接口。(好像推荐前者的比较多);
2. 线程状态: new->runnable->running->dead
   创建之后为new,调用start后为runnable(注意此时还没有run),系统执行时为running。 在Thread执行完毕或者出现异常(抛出RuntimeException)时,Thread终止。此时状态为dead,此时如果通过start来调用它会抛出RuntimeException异常
   如果thread在等待资源,或者在试图获得互斥体的时候被阻塞,Thread决定睡眠,进入block状态。在当睡眠周期到期、预期输入到达,或者互斥体当前的拥有者将其释放并通知等候Thread可以再次夺取互斥体时,阻塞的线程重新进入 runnable 状态。系统就可以继续执行了。
   有个图很好,是Javaeye论坛上另外一位老兄的,我只链接到这个图:


3. 典型的操作系统支持方式分为两种:协作式和抢占式。
   在协作式中,Thread对于占用CPU多长时间,什么时候结束有最终意见。(需要了解一下这个最终意见是什么).
   抢占式则系统采用基于时钟可以强行从一个Thread转移到另外一个Thread,可以防止独占的发生。

4. 四个常见缺陷
   争用条件:多个线程之间存在对共享资源的竞争,而胜出者决定系统的行为。因为恭喜资源受到了多个线程的影响,不会按照系统预想的方式运行。
   死锁,两个线程之间互相等待。条件永远不能为真。
   活动锁:(这是一个有趣的概念 )一个简单的示例就是:每个线程已经拥有了一个对象,同时需要另外一个线程拥有的另外一个对象。可以想像这样的情况:每个线程放下自己拥有的对象,捡起另外一个线程放下的对象。
   资源耗尽:。。。

5. lock简单原则
引用
Always lock during updates to object fields.
Always lock during access of possibly updated object fields.
Never lock when invoking methods on other objects.


参考资料:
《Java.Concurrency.in.Practice》
http://www.ibm.com/developerworks/cn/java/j-csp1.html
分享到:
评论

相关推荐

    老师给我们的线程小示例

    `Thread概念整理.doc`文档很可能包含了线程的基本概念,例如:线程的生命周期(新建、可运行、运行、阻塞、死亡)、线程的同步与通信(如`synchronized`关键字、wait()、notify()和notifyAll()方法)、线程的中断和...

    java基础重点整理

    【Java基础重点整理】 在Java编程语言中,有几个核心概念和特性是学习者必须掌握的基础知识。这些概念包括面向对象的编程原则、类的访问修饰符、以及Java语言的特性和开发环境。 1. **面向对象的概念** - **变量*...

    张孝祥正在整理Java.doc张孝祥正在整理Java.doc

    张孝祥正在整理的文档可能涵盖了Java的基础概念、语法结构以及高级特性,旨在帮助读者全面了解并掌握Java编程。 【标签】: "Java编程" 【压缩包子文件的文件名称列表】: "张孝祥正在整理Java.doc" ### Java编程...

    java面试(整理).rar

    5. **多线程**:掌握线程的创建方式(实现Runnable或继承Thread),线程同步机制(synchronized、wait/notify、Lock、ReentrantLock等),以及死锁、活锁和饥饿现象。 6. **JVM内存模型**:理解堆内存、栈内存、...

    JAVA核心知识点整理

    本文将深入探讨在"JAVA核心知识点整理"中涉及的关键概念和技术。 一、Java基础 Java的基础知识包括语法、面向对象特性(封装、继承、多态)、异常处理、输入/输出流以及集合框架。了解基本类型、类、接口、包的概念...

    JAVA核心知识点整理.zip

    这份"JAVA核心知识点整理.zip"压缩包提供了一份详细的283页的学习资料,涵盖了Java开发的基础到高级概念,非常适合拥有1到3年经验的Java开发者进行自我提升。下面我们将详细探讨Java的核心知识点。 1. **基础语法**...

    java笔试试题整理

    5. **多线程**:Java内置对多线程的支持,你需要理解Thread类和Runnable接口,以及同步机制(synchronized关键字,volatile变量,Lock接口,Semaphore等)。 6. **I/O流**:Java的I/O流用于读写文件和网络通信。...

    张孝祥正在整理Java就业面试题大全(结业版)

    这包括Java语言的基本语法,如变量、数据类型、运算符、控制结构(if-else、switch、循环等)、方法、类与对象、封装、继承、多态等核心概念。深入理解这些基础知识是成为一名合格Java程序员的基础。 其次,Java...

    Java并发框架整理

    ### Java并发框架整理 #### 多线程从1.2到1.7各种接口使用及场景介绍 在Java中,多线程技术是一项非常重要的功能,它可以极大地提高应用程序的性能和响应能力。从JDK 1.2版本开始,Java就提供了支持多线程的基础...

    onethread

    本文将详细探讨单线程模型的概念、重要性以及在移动开发中的应用。 首先,我们需要了解什么是线程。线程是操作系统分配CPU时间的基本单位,一个进程中可以包含多个线程,它们共享进程的内存空间,同时执行不同的...

    JAVA复习最后整理

    线程的创建、同步、通信等概念需要熟练掌握,如synchronized关键字、wait()、notify()方法,以及Thread类和Runnable接口的区别。 Java还提供了丰富的API,如Swing或JavaFX用于构建图形用户界面,JDBC用于数据库操作...

    张孝祥整理的JAVA面试题宝典

    4. **多线程**:线程的创建(Thread类与Runnable接口)、同步机制(synchronized关键字、wait/notify、Lock接口)、并发工具类(如Semaphore、CountDownLatch)和线程池。 5. **JVM**:Java虚拟机的工作原理,包括...

    JAVA核心知识点整理 全面整理.zip

    这份"JAVA核心知识点整理"文档详细涵盖了以上这些主题,通过深入学习,你将能够全面掌握Java编程的核心概念和技术,从而在实际开发中游刃有余。无论是初学者还是有经验的开发者,这份资料都将是一份宝贵的参考资料。

    JAVA高级知识点整理.rar

    在Java中,可以通过实现Runnable接口或继承Thread类来创建线程。线程同步是多线程编程的关键,包括synchronized关键字、volatile变量、Lock接口(如ReentrantLock)以及各种并发工具类(如Semaphore、CountDownLatch...

    140个java源码实例源码整理

    "140个java源码实例源码整理"这个资源集合显然提供了大量的Java编程示例,可以帮助初学者和经验丰富的开发者深入理解Java的核心概念以及实际应用。 首先,Java源码实例是学习编程的重要途径,它们提供了实际的代码...

    2020最新JAVA核心知识点整理,完整.zip

    5. **多线程**:Java提供了丰富的多线程支持,包括Thread类、Runnable接口、同步机制(synchronized关键字、Lock锁、条件变量)等,以及线程池的使用。 6. **网络编程**:Socket编程是Java进行网络通信的基础,学习...

    Java十大基础笔记整理(PDF)

    这份"Java十大基础笔记整理(PDF)"提供了全面的Java基础知识概览,适合初学者进行学习和复习。下面,我们将深入探讨Java的基础知识,涵盖核心概念、语法和编程实践。 1. **Java简介**:Java是由Sun Microsystems...

    JAVA核心知识点整理——java自学资料.rar

    6. **多线程**:线程的创建、同步、死锁等问题,以及Thread、Runnable、ExecutorService等并发工具的使用。 7. **反射与注解**:反射机制使得在运行时可以动态地获取类的信息并操作类的对象,而注解提供了元数据的...

    JAVA核心面试知识整理-最全

    为了在Java面试中脱颖而出,了解其核心概念和技术至关重要。以下是一份全面的Java核心面试知识点总结: 一、基础语法 1. 变量与数据类型:Java支持八种基本数据类型,包括整型、浮点型、字符型和布尔型。变量必须先...

Global site tag (gtag.js) - Google Analytics