线程是程序执行的最小单位,线程的目的是为乐更好的支持多cpu和减小上下文切换的开销。一个进程至少拥有一个线程,当运行在单cpu上时,采用多线程可以使设计更简洁,程序执行效率更高;如果运行在多cpu机器上,可以用多个cpu执行各个线程,做到真正的并行处理。 linux下最常使用的是pthread库,需 ...
分类:
编程语言 时间:
2017-05-15 15:06:23
阅读次数:
264
线程概念 线程概念 线程和进程的区别 线程和进程的区别 线程开销 线程开销 当我们创建了一个线程后,线程里面主要包括线程内核对象、线程环境块、1M大小的用户模式栈和内核模式栈。 线程有自己的线程栈,大小为1M,所以它可以维护自己的变量。线程是一个新的对象,它会增加系统上下文切换的次数,所以过多的线程 ...
分类:
编程语言 时间:
2017-05-15 12:03:51
阅读次数:
280
1. 锁的劣势:(包括syncronized实现的内置锁、ReentrantLock) (1)开销大:线程的挂起与恢复存在很大开销,并且存在着较长时间的中断。 2. volatile变量: (1)优势:更轻量级的同步机制,在使用这些变量时不会发生上下文切换或线程调度,提供了内存可见性保证 (2)劣势 ...
分类:
其他好文 时间:
2017-05-06 15:08:19
阅读次数:
271
http://www.cnblogs.com/yxzfscg/p/4758728.html 三种线程——内核线程、轻量级进程、用户线程 内核线程 内核线程就是内核的分身,一个分身可以处理一件特定事情。这在处理异步事件如异步IO时特别有用。内核线程的使用是廉价的,唯一使用的资源就是内核栈和上下文切换时 ...
分类:
编程语言 时间:
2017-05-03 19:20:28
阅读次数:
237
进程: 优点:同时利用多个CPU,能够同事进行多个操作 缺点:耗费资源(重新开辟内存空间) 线程: 优点:共享内存,IO操作时候,创造并发操作 缺点:抢占资源 进程和线程都不是越多越好 进程:CPU个数=进程个数 线程:请求上下文切换耗时间计算机中执行任务最小单元是:线程 IO操作不用CPU IO密... ...
分类:
编程语言 时间:
2017-04-24 12:35:36
阅读次数:
186
tornado使用了单进程(当然也可以多进程) + 协程 + I/O多路复用的机制,解决了C10K中因为过多的线程(进程)的上下文切换 而导致的cpu资源的浪费。 tornado中的I/O多路复用前面已经讲过了。本文不做详细解释。 来看一下tornado中的协程模块:tornado.gen: tor ...
分类:
其他好文 时间:
2017-04-10 19:17:08
阅读次数:
273
1. 单核CPU上运行的多线程程序, 同一时间只能一个线程在跑, 系统帮你切换线程而已(cpu时间切片), 系统给每个线程分配时间片来执行, 每个时间片大概10ms左右, 看起来像是同时跑, 但实际上是每个线程跑一点点就换到其它线程继续跑,效率不会有提高的,切换线程反倒会增加开销(线程的上下文切换) ...
分类:
编程语言 时间:
2017-03-25 13:37:49
阅读次数:
302
前言本文来自方腾飞老师《Java并发编程的艺术》第一章。并发编程的目的是为了让程序运行得更快,但是并不是启动更多的线程就能让程序最大限度地并发执行。在进行并发编程时,如果希望通过多线程执行任务让程序运行得更快,会面临非常多的挑战,比如上下文切换的问题、死锁的问题,以及受限于硬件和软件的资源限制问题,... ...
分类:
编程语言 时间:
2017-03-23 18:41:17
阅读次数:
171
读完本文你将了解:
多线程的优点
1提高资源利用率
2响应更快
多线程的缺点
1增加资源消耗
2上下文切换的开销
3设计编码测试的复杂度增加
Java 内存模型与 CPU 内存简介
Java 中的堆
...
分类:
其他好文 时间:
2017-03-01 11:08:08
阅读次数:
236
进程是什么?狭义定义:进程是正在运行的程序的实例(aninstanceofacomputerprogramthatisbeingexecuted)。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基..
分类:
编程语言 时间:
2017-02-27 22:05:00
阅读次数:
286