摘要:
由前言: 在第一章已经出现了非线程安全的情况。“非线程安全”其实会发生在多个线程同时对同一个对象中的实例变量进行访问时发生。产生的结果就是脏读(读到被修改过的数据)。 “线程安全”获得的实例变量是经过同步处理的,不会出现脏读的情况。 2.1.1方法内的变量为线程安全: “非线程安全”的问题存在于实例 阅读全文
摘要:
本章主要介绍了java多线程中的同步,也就是如何在java语言中写出线程安全的程序。 如何在java语言中解决非线程安全的相关问题。 设计知识点: synchronized对象监视器为Object时的使用。 synchronized对象监视器为Class时的使用。 非线程安全是如何出现的。 关键字v 阅读全文
摘要:
第一章的学习已经结束了。 主要是学习了一些基础的线程API操作,了解了线程的一些问题: 线程API操作: currentThread()、getName()、setpriority()、interrupt()、isInterrupted()、interrupted()、suspend()、resum 阅读全文
摘要:
在Java中有两种线程,一种为用户线程,一种为守护线程。 守护线程是一种特殊的线程,它具有“陪伴”的含义,当进程中不存在非守护线程时,则守护线程自动销毁。 典型的守护线程就是垃圾回收线程。 当进程中没有线程了,则垃圾回收线程也就没有存在的必要了,自动销毁。 任何一个守护线程,都是JVM中所有的非守护 阅读全文
摘要:
在操作系统中,线程是有优先级划分的,优先级较高的线程会得到相对较多的资源。 也就是说CPU会优先执行优先级较高的线程对象中的任务。 设置线程优先级有助于帮“线程规划器”确定下次选择哪一个线程来优先执行。 设置线程的优先级使用setPriority()方法,此方法在JDK的源代码如下: 在java中, 阅读全文
摘要:
yield()方法的解释:放弃当前cpu资源,将它让给其他的任务去占用CPU执行时间。但放弃的时间不能确定,有可能刚刚放弃,但马上又获得CPU时间片。 线程代码: 执行代码: 执行结果(第一个为注释版本,第二个为去掉注释): 源码地址:https://github.com/lilinzhiyu/th 阅读全文
摘要:
在java中,使用suspend()方法暂停线程,使用resume()方法恢复线程的执行。 1.8.1suspend与resume的使用: 线程代码: 执行代码: 执行结果: 从执行的时间来看,新开启的线程确实发生了暂停(当前线程暂停与启动的时间与另外开启的线程是一致的),并且能够成功的恢复运行状态 阅读全文
摘要:
http://itchat.readthedocs.io/zh/latest/tutorial/tutorial0/。 这个是学习网址,到时候自己学一下。做个案例试试 阅读全文