摘要: 一、介绍 什么情况会发生死锁?过多的同步方法会造成死锁一旦有多个进程,且它们都要争用对多个锁的独占访问,那么就有可能发生死锁。如果有一组进程或线程,其中每个都在等待一个只有其它进程或线程才可以执行的操作,那么就称它们被死锁了。最常见的死锁形式是当线程 1 持有对象 A 上的锁,而且正在等待对象 B 上的锁;而线程 2 持有对象 B 上的锁,却正在等待对象 A 上的锁。这两个线程永远... 阅读全文
posted @ 2016-03-18 10:05 Python魔法师 阅读(285) 评论(0) 推荐(0) 编辑
摘要: synchronized在单例模式中的使用在单例模式中有一种懒汉式的单例,就是类初始化的时候不创建对象。等第一次获取的时候再创建对象。这种单例在单线程下是没有问题的获取的也都是同一个对象。但是如果放入多线程中就会获取多个不同对象问题。1、首先来看一个懒汉式的单例模式:1234567891011//懒汉式的单例类class MyJvm{ private static MyJvm instanc... 阅读全文
posted @ 2016-03-18 10:03 Python魔法师 阅读(1489) 评论(0) 推荐(0) 编辑
摘要: 一、介绍 线程的同步:一般的并发指的就是多个线程访问同一份资源。多个线程同时访问(修改)同一份资源的话,就会有可能造成资源数据有误。 如果多个线程访问多个不同资源,就不会造成线程同步。 如果要解决这个问题,就需要对线程使用同步存取。java中提供了一个synchronized关键字来对方法或者某个块加锁。从而达到锁定某个区域,不可 同时修改以免数据有误的情况。 synchro... 阅读全文
posted @ 2016-03-18 10:02 Python魔法师 阅读(814) 评论(0) 推荐(1) 编辑
摘要: 一、介绍 在Java中,每一个线程都有一个优先级,默认是一个线程继承它的父线程的优先级。一个线程的默认优先级为NORM_PRIORITY = 5 设置优先级的方法setPriority() ,可设置的值如下: 123static int MAX_PRIORITY = 10;//线程可以具有的最高优先级(执行概率最高)static int MIN_PRIO... 阅读全文
posted @ 2016-03-18 10:01 Python魔法师 阅读(3693) 评论(2) 推荐(0) 编辑
摘要: 一、线程的状态 每个 Java 程序都有一个缺省的主线程,对于 Java 应用程序,主线程是 main()方法执行的线索;对于 Applet 程序,主线程是指挥浏览器加载并执行 Java Applet 程序的线索。要想实现多线程,必须在主线程中创建新的线程对象。任何线程一般具有五种状态,即创建、就绪、运行、阻塞、终止。1、新生状态 ... 阅读全文
posted @ 2016-03-18 09:55 Python魔法师 阅读(4819) 评论(0) 推荐(0) 编辑
摘要: 一、进程、线程和多线程的概念进程是程序的一次动态执行过程,它经历了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到最终消亡的过程。多进程操作系统能同时运行多个进程(程序),由于 CPU 具备分时机制,所以每个进程都能循环获得自己的 CPU 时间片。由于 CPU 执行速度非常快,使得所有程序好象是在“同时”运行一样。线程是比进程更小的执行单位,线程是进程内部单一的一... 阅读全文
posted @ 2016-03-18 09:51 Python魔法师 阅读(539) 评论(0) 推荐(0) 编辑