为了节省系统在多线程并发情况下不断的创建新和销毁线程所带来的性能浪费,就需要引入线程池。
线程池的基本功能就是线程复用。每当系统提交一个任务时,会尝试从线程池内取出空闲线程来执行它。如果没有空闲线程,这时候再创建新的线程。任务执行完毕,线程也不会立即销毁,而是加入到线程池中以便下次复用。...
分类:
编程语言 时间:
2014-12-09 09:19:06
阅读次数:
165
1、线程安全问题a、银行取钱问题:取钱时银行系统判断账户余额是否大于取款金额,如果是,吐出钞票,修改余额。这个流程在多线程并发的场景下就可能会出现问题。 1 /** 2 * @Title: Account.java 3 * @Package 4 * @author 任伟 5 * @da...
分类:
编程语言 时间:
2014-12-08 20:59:57
阅读次数:
303
如果你有多个任务,同时进行,并且,是定时的执行,那么以下的程序,完全可以满足你的要求:...
分类:
编程语言 时间:
2014-12-08 09:19:32
阅读次数:
196
线程的阻塞和唤醒在多线程并发过程中是一个关键点,当线程数量达到很大的数量级时,并发可能带来很多隐蔽的问题。如何正确暂停一个线程,暂停后又如何在一个要求的时间点恢复,这些都需要仔细考虑的细节。在Java发展史上曾经使用suspend()、resume()方法对于线程进行阻塞唤醒,但随之出现很多问题,比较典型的还是死锁问题。如下代码,主要的逻辑代码是主线程启动线程mt一段时间后尝试使用suspend(...
分类:
编程语言 时间:
2014-12-06 19:33:24
阅读次数:
513
在JAVA中,每个线程都有一块属于自己的工作内存区,该内存区会保存一份从主内存拷贝过来的公共变量值。不加volatile修身的变量在每个线程中的值修改一般都是独立的。及如下图所示。...
分类:
编程语言 时间:
2014-12-01 16:03:55
阅读次数:
281
多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完...
分类:
编程语言 时间:
2014-12-01 15:54:38
阅读次数:
191
1.GCD(Grand Centrol Dispath)
并行:宏观以及微观都是两个人再拿着两把铁锹在挖坑,一小时挖两个大坑
并发:宏观上是感觉他们都在挖坑,微观是他们是在使用一把铁锹挖坑,一小时后他们挖了两个小坑。
总结:就单个cpu来说,大部分进程是并发进行的,就是一把铁锹,你一下我一下,只是间隔时间较短,用户感觉不到而已。
应用:
GCD包括:
(1)实际使用中
/...
分类:
移动开发 时间:
2014-11-29 23:07:13
阅读次数:
437
生产者和消费者是多线程经典的问题,生产者和消费者问题的核心是同步的问题,同步问题的核心是要保证同一个资源被多个线程并发访问时的完整性,常用的方法是采用信号或加锁机制,保证资源在任一时刻只能被一个线程访问。这一问题用java来实现的话主要有4种方式。1.wait()/notify();2.await()/signal(); 3.blockingQuene 4.PipedInputStream/pip...
分类:
编程语言 时间:
2014-11-29 20:16:12
阅读次数:
202
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而...
分类:
数据库 时间:
2014-11-28 14:17:24
阅读次数:
414
进程 线程 多线程 并发 同步异步
很多人对进程,线程,多线程,并发,同步,异步等概念感到困惑,这都是大学没好好听课的缘故啊.咱在这里帮感到概念给感到困惑的同学复习下....
分类:
编程语言 时间:
2014-11-21 14:25:40
阅读次数:
170