多线程技术学习(一)

1.什么是线程?什么是多线程?
2.线程出现在哪里?
3.如何使用线程?


1.什么是线程?

    我不想像教科书写的那样理解,站在操作系统的角度,线程就是能够被CPU调度的最小执行单元.说到这里不得不说进程,
    在WINDOWS中.打开任务管理器看见的那些.exe都是进程.进程占有系统资源.有代码空间,有内存空间.当进程申请资源被批准时,他就会占据这些硬件资源,一个进程开启,会有一个主线程.如果在该进程中再创建其它的子线程,那们它和主线程就是兄弟线程.它们在同一个进程中.因此他们共享进程的资源,同一存储空间,不同是他们的所要完成的工作不同.即代码不同.
    站在代码的角度来讲,就是调用系统的API创建线程.执行一些自定义的方法或者函数.当然站在这个微观角度,我们要考虑如何管理这些线程.创建,运行,终止以及同步问题.线程我们调用API函数就可以创建.具体创建什么样的线程,那你就得多看看API文档.创建完成,接着设为Runable(可运行)状态.注意:线程最终被CPU调度是由操作系统决定的 .在代码里面,只是将其设为可运行状态.当CPU时间片分配给该线程.它才是真正的运行.时间片完了,线程可能会被挂起.当线程体执行完毕,线程一般就会自动终止了,我们也可以人为的操作.
    试想当我们创建很多线程的时候.都在等待等CPU分配时间片.所以就不确定谁先执行,在这个时间片内它的线程体能执行完吗?这就涉及到同步问题 .这就好像我正在吃饭,你却也过来吃我碗里的,假设同时只能一个人在吃.这个时候饭被你吃完了,当我在再去吃的时候发现饭没了.如果饭变成钱那问题就大了.

    关于同步的问题在后面讲,因为线程共系统资源,而线程的运行又是由系统决定的.所以为了保障那些共享资源的安全,必须得有方法.后面我会介绍一些方法来保证线程之间的安.

    什么是多线程? 举一个例子,这在孙鑫老师的视频中用过.假高我是CPU,要做一张椅子(四个桌腿,一个桌面).如果我只交给一个厂家做,那么时间是可想而知的.我会一直处于等待状态,只到这个厂家把椅子送到我面前,现在我就找了五家厂家,每人负责一个任务.当我跟第一个厂家说,你做一个桌腿.这个时候我就把任务交给这个厂家,我就会一直等他把货送来.在这个等待期间我是空闲的.因此我可以花几秒钟对第二个厂家说,你也做一个腿吧.然后我会接着对其它的厂家(线程)通知任务.
只到所有的人都通知到了.然后我会处于空闲状态.这个时候等待的时间明显减少.只等他们送东西来啦 .

2.线程出现在哪里?

     线程通常都是在进程里存活 的.因为线程不占有系统资源,想在系统里运行,就得在进程里,使用它的进程空间的资源内存,代码空间等.一个进程通常有一个主线程.是由系统自动调用的.一般的程序都会有一个程序入口.那就是由系统里主线程调用的.

3.如何使用线程来完成我们的任务呢?(今天就学习到这里)


Modern Operating System


Name: Eric.Liu
QQ  : 334986493
E-mail:wang_zitao@2163.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值