该文被密码保护。 阅读全文
摘要:
在什么情况下使用线程池? 1.单个任务处理的时间比较短;2.需要处理的任务的数量大;使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销。2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及”过度切换”。 线程池的概念和原理 线程池是一种多线程处理方法,处理过 阅读全文
摘要:
一、死锁原理 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程 二、死锁产生的四个必要条件互斥条件(Mutual exclusion):资源不 阅读全文
摘要:
转载:http://www.cnblogs.com/linjiqin/p/3208843.html 一、同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据。 二、同步和锁定 阅读全文
摘要:
同步就是许多线程同时共用一个资源,一个线程在用别的线程就要等待。异步相反,可以不用等待。 同步:发送一个请求,等待返回,然后才能再发送下一个请求;异步:发送一个请求,不等待返回,随时可以再发送下一个请求; 同步可以避免出现死锁,读脏数据的发生。一般共享某一资源的时候用,如果每个人都有修改权限,同时修 阅读全文
摘要:
并发和并行从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。 阅读全文
只有注册用户登录后才能阅读该文。 阅读全文
摘要:
1、继承Thread类创建线程 Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类 阅读全文
摘要:
ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references)。ArrayList是List接口的一个实现类,它的特点是查询效率高,增删效率低,线程不安全,原因是因为ArrayList底层是封装了一个数组,它是用数组实现的。 ArrayList和LinkedL 阅读全文
摘要:
1. HashTable和HashMap的区别 HashMap和Hashtable都实现了Map接口。主要区别:线程安全性,同步(synchronization),以及速度。 1、HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable是 阅读全文