`
java_mike
  • 浏览: 85265 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java Thread Tech

 
阅读更多

user thread / daemon thread

java.lang.Thread
java.lang.Runnable

start(), run(), sleep(), wait(), notify(), notifyAll(), join(), yield(), stop()

object: wait(), notify()

notify()调用后,并不是马上就释放对象锁的,而是在相应的synchronized(){}语句块执行结束,自动释放锁后,JVM会在wait()对象锁的线程中随机选取一线程,赋予其对象锁,唤醒线程,继续执行。

groupId: com.mikehe.study.thread
artifiedId: producer-consumer
package: com.mike.study.thread.pc

Producer/Consumer
produce/consume
LinkedList breadBasket
Bread
BreadShop
Client
synchroniz.../wait/notify/sleep
while(...) {}

如果对象调用了wait方法就会使持有该对象的线程把该对象的控制权交出去,然后处于等待状态。
如果对象调用了notify方法就会通知某个正在等待这个对象的控制权的线程可以继续运行。
如果对象调用了notifyAll方法就会通知所有等待这个对象控制权的线程继续运行。

1. 每个对象都有一把锁(对象)
2. thread 执行该对象的synchronize,将持有该对象的锁,该方法或块执行完成,释放锁
3. 如果一个对象有多个syn方法,同一时刻只有一个线程进入syn方法或块
4. sleep释放锁,wait不释放锁





分享到:
评论

相关推荐

    Java-tech:解决Java技术问题

    5. **多线程**:Java提供内置的多线程支持,通过Thread类和Runnable接口可以创建和管理线程,同步机制(如synchronized关键字、wait/notify、ReentrantLock等)防止并发问题。 6. **反射**:反射机制允许程序在运行...

    ctt-bf-java:Campinas Tech Talents(Ben Fatto)最终项目-Java

    "ctt-bf-java"是Campinas Tech Talents(Ben Fatto)组织的一个最终项目,主要使用Java编程语言进行开发。这个项目可能是为了培养和测试学员在Java技术栈上的技能和实践经验,涵盖了一系列的Java核心概念和技术。 ...

    java高并发源码-tech03ThreadProgrammingMasterBook:《实战java高并发程序设计》

    在tech03ThreadProgrammingMasterBook-master这个资源中,可能包含了详细的代码示例和解释,可以帮助读者更好地掌握Java高并发编程技术。通过深入学习和实践,可以提升开发者在处理复杂并发场景下的能力。

    java 超详细api参考文档

    8. **java.concurrent**:并发和多线程编程相关类,如Thread、ExecutorService、Semaphore等,帮助开发者编写高效的多线程程序。 9. **java.math**:提供大整数(BigInteger)和高精度浮点数(BigDecimal)运算,...

    高级java开发并发问题

    虽然Java中万物皆对象,但是new Thread() 创建一个线程和 new Object()还是有区别的。 new Object()过程如下: 1.JVM分配一块内存 M 2.在内存 M 上初始化该对象 3.将内存 M 的地址赋值给引用变量 obj 创建线程的过程...

    115个Java面试题和答案

    - **Thread类和Runnable接口**:创建线程的两种方式。 - **同步机制**:synchronized关键字、wait()、notify()和notifyAll()方法的使用。 - **线程池**:ExecutorService和ThreadPoolExecutor的理解。 8. **内存...

    blaze_tech_exam

    6. **多线程**:Java支持多线程编程,通过Thread类或Runnable接口实现。线程同步机制,如synchronized关键字、wait()、notify()和notifyAll()方法,以及Lock接口(如ReentrantLock)是多线程编程的重要部分。 7. **...

    Internet-Tech-:互联网技术项目

    3. **Java多线程**:HTTP服务器通常需要处理多个并发请求,因此需要利用Java的多线程机制,如Thread类和Runnable接口,或者使用ExecutorService来管理线程池。 4. **Servlet技术**:Java Servlet是Java EE平台中...

    tech-book:I我读过的技术书

    7. **多线程**:Java内置了对多线程的支持,可以通过实现Runnable接口或继承Thread类来创建和管理线程,实现并发执行。 8. **网络编程**:Java的Socket编程可以用来实现客户端和服务器之间的通信,创建TCP或UDP应用...

    pari-tech-threadshw6

    Java的`ExecutorService`也适用于Kotlin,它可以限制并发线程的数量并重用已存在的线程,避免频繁创建和销毁线程的开销。 5. **异步编程**:Kotlin的`async/await`语法糖,结合`coroutine builders`如`launch`和`...

    JNI攻略之八――操作对象的构造方法

    - [Java Native Interface (JNI)](https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/jniTOC.html) - [JNI示例](http://www.example.com/jni-examples) - [JNI与性能优化]...

    THE-TECH-CHALLENGE-2015:安卓应用

    10. **异步任务与线程管理**:了解AsyncTask、Handler、Looper、Thread和Runnable,用于解决Android应用中的UI线程阻塞问题。 11. **SQLite数据库**:轻量级的关系型数据库,用于本地数据存储。 12. **JSON与网络...

    FTC-ultimateGoal

    6. **多线程**:Java内置对多线程的支持,可以创建Thread类的实例或实现Runnable接口来并发执行任务。 7. **JVM**:Java虚拟机(JVM)是Java程序的运行环境,负责解释执行字节码并管理内存。 8. **泛型**:泛型...

    argo:Recycle Rush 代码的第 1 版 - 已停用

    6. **多线程**:理解Java并发编程的基础,如Thread类、synchronized关键字和ExecutorService。 7. **事件驱动编程**:如果是与用户交互的应用,可能涉及到事件监听器和事件处理器的概念。 8. **第三方库**:项目...

    BookExchange

    "BookExchange"是一个基于Java开发的项目,主要应用于TTU(可能是Texas Tech University或其它以“TTU”为简称的教育机构)的软件工程课程中。这个项目旨在模拟一个在线书籍交换平台,让学生们能够方便地交换自己的...

    Android Http协议访问网络实例(3种)

    URL url = new URL("http://guolin.tech/api/china"); connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET");// 设置请求方式,可以不设置,默认是GET connection....

    Android的TextView使用Html来处理图片显示、字体样式、超链接等

    转eoe:http://www.eoeandroid.com/thread-4496-1-1.html import android.text.Html; TextView t3 = (TextView) findViewById(R.id.text3); t3.setText( Html.fromHtml( "<b>text3:</b> Text with a " + ...

    TechInstituteBgProcess

    TechInstituteBgProcess 2015/03/29 Tech Institute 这是大阪第10期(第12章)讲座内容的来源。每个文件夹的内容样本ANR 导致 ANR 的示例程序。 样本ANR2 那些使用 Thread 的人。 样本ANR3 UI线程中的处理由Handler....

Global site tag (gtag.js) - Google Analytics