hello,大家好,今天在看高性能mysql中看到单线程工作字眼的时候,当时我的瞬间蒙圈了,,线程?线程是什么
进程不用说,我很熟悉的,他们俩个的关系又是如何呢?我找了一下资料,在百度上看到了一个形象的比喻,后来我自己总结了一个更形象的比喻。
一般来说,进程中至少一个线程,一个主线程和其他线程组成一个进程。多个线程的目的在于分享CPU的时间片,从而完成并行任务。
线程是CPU分配时间的单位,每一个线程对应于它在进程中的一个函数,也就是内存中的代码段,多个线程执行时CPU会根据它们的优先级分配时间,使它们完成自己的功能。
在说简单点:进程是活动的程序,是容器,线程在进程的容器中运行,是实际执行工作的代码。
百度网友形象的比喻:
以沙箱为例进行阐述。一个进程就好比一个沙箱。线程就如同沙箱中的孩子们。孩子们在沙箱子中跑来跑去,并且可能将沙子攘到别的孩子眼中,他们会互相踢打或撕咬。但是,这些沙箱略有不同之处就在于每个沙箱完全由墙壁
和顶棚封闭起来,无论箱中的孩子如何狠命地攘沙,他们也不会影响到其它沙箱中的其他孩子。因此,每个进程就象一个被保护起来的沙箱。未经许可,无人可以进出。
我后来想了一下,有问了一下学java的 老大化名),我的形象的比喻:
我的理解: 单线程模式)
进程当做 一条公路。
线程想像成为公路上的汽车。
如果有两个程序的运行的话, 就会出现两个条公路,他们的终点是内存,每个公路上的汽车可以乱跑乱撞,但是不会影响到其他的跑道上的汽车,但是他们俩个唯一做的是征用资源 去抢内存资源,其实这里是有优先级别的。
还有 一个程序执行时的顺序
连接 -->回话-->进程-->线程我的比喻不知道大家能不能听明白的要表达的意思,这个东西就是比较抽象,需要多想一下啦。
本文出自 “history_xcy” 博客,请务必保留此出处http://historys.blog.51cto.com/7903899/1299600

