stxlhr 2017-10-25 14:39 采纳率: 0%
浏览 1073

关于多线程和线程调度、优先级的问题??

菜逼有个问题想不通,多线程中存在用分时模型的调度方式,一个线程要在制定时间片内执行任务,用完之后就要给其他的线程,但是进程中的多线程是共享内存,而且可以同时进行的,这也是多线程相对于进程的特点所在,那么为什么书上还有两个线程不能同时进行,还会出现阻塞状态的说法呢?

有人告诉我说单核并不能真正意义上实现多线程,那么单核的多线程设计有何意义呢,它如何减轻了cpu的负担呢,而迅雷这种软件支持同时下载多个文件,这也属于多线程的范畴吧,而单核的u肯定也可以支持迅雷的这种功能啊,那不是和他的说法冲突了吗。。。求大神解惑啊

  • 写回答

2条回答 默认 最新

  • JavaBuilt 2017-10-26 01:30
    关注

    多线程是并发执行,但不是同时进行,同学不要搞混了。假设火车站买票有五个窗口,一共一百张票,那么就是5个人卖一百张票。那么一号在卖第一张票的时候
    2号是不能和1号卖同一张票的(这涉及到线程安全问题)。那么为了解决这个冲突,1号卖第一张票的时候会将票上锁,其他线程无法访问而进入阻塞状态
    当1号卖出第一张票时解锁,其他线程卖剩下的99张。所以线程是有优先级的,但优先级也不是绝对,优先级只是一个cpu调度的概率大小。

    迅雷是多线程,但也是断点续传。比如一部电影有1个G,一共五个线程,那么第一个线程传输1到300kb,第二个线程从300kb到600kb,以此类推
    那么五个线程不会相互干扰,可以并发执行也不会阻塞。同学懂了吗

    评论

报告相同问题?

悬赏问题

  • ¥15 用三极管设计一个单管共射放大电路
  • ¥20 fluent无法启动
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
  • ¥15 gsoap生成onvif框架