zoukankan      html  css  js  c++  java
  • 20155216 2017-2018-1 第八周课下作业2

    20155216 2017-2018-1 第八周课下作业2

    首先要解决的问题:

    1. 什么是多线程?

    线程是进程内的并发,是进程中的一个执行控制单元。
    使用线程的好处
    1、使用线程可以把占据长时间的程序中的任务放到后台去处理
    2、用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度
    3、程序的运行速度可能加快
    4、在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,使用线程我们可以释放一些珍贵的资源如内存占用等等

    2.什么是多进程?
    同一个时间里,同一个计算机系统中允许两个或两个以上的进程处于并行状态,这是多进程。多进程带来的好处是你可以边听mp3边上网,与此同时甚至可以将下载的文档打印出来,而这些任务之间丝毫不会相互干扰。但并行需要解决的问题是通常并行的进程比CPU数量多得多,而原则上一个CPU只能分配给一个进程(引入线程后,CPU调度的基本单位是线程,进程是资源分配的最小单位),以便运行这个进程。而要让CPU同时运行多个进程,就必须使用并发技术,实现并发技术最常见的就是时间片轮转调度算法,即在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如1毫秒),这样用户根本感觉不出来 CPU是在轮流为多个进程服务,就好象所有的进程都在不间断地运行一样,给用户的感觉就是并行。但实际上在任何一个时间内有且仅有一个进程占有CPU。
    作业内容:
    把daytime服务器分别用多进程和多线程实现成并发服务器并测试。

    多进程实现daytime服务器

    服务器端

    客户端

    运行截图

    多线程实现daytime服务器

    服务器源代码:

    客户端代码:

    运行截图:

    总结

    **多进程和多线程的概念可以概括为一条河流。

    1.纵向的是多线程,进程就像河流,线程就是分流,线程从一个进程中衍生出来。河流可以把水引向分流分担自身的流水量,且各个分流是同时流水的(并发),它们共享了一个源头(共享变量);
    2.横向的是多进程,一条河流从源头上几乎完全与另一条河流一样,但由于一些环境的不同,造成了两者最后的流向、各个分流的流量可能会不一样,但是两条河流同时在流水(并发)。

  • 相关阅读:
    全文本搜索神器
    唯一索引和普通索引怎么选择
    程序员应不应该搞全栈
    c 的陷阱
    抽象能力
    电影电视剧推荐
    系统故障诊断
    一次web网站被入侵的处理记录
    Spark RDD 操作
    (转)Mysql哪些字段适合建立索引
  • 原文地址:https://www.cnblogs.com/lyx1996/p/7827938.html
Copyright © 2011-2022 走看看