inushome 发表于 2018-8-7 10:31:11

python-linux学习成长过程

  在python中存在着多线程、多进程等
  今天写一点关于Python多线程的东西
  咱们在学习Linux中Apache的时候都有接触过线程、进程这里就不多解释了
  shell中使用多线程(nohup命令)
  首先写Python多【线 进】程的用途:
  Python线程多用与I/O密集,下载,图像,音频,保持等情况。
  Python进程多用于大量消耗Cpu的场所,数据是分开的,同步简单;占用内存多,切换复杂,cpu利用率;创建销毁、切换复杂、速度慢;进程之间不会互相影响。
  进程可以直接查看,线程不可以,因为线程依附在进程中所以要使用pstree -p 进程号来查看
  每个进程自带一个线程(本身)
  线程基本原理:
  1) cpu是以时间片的方式为进程分配cpu处理的时间的,当一个进程以同步的方式去完成几件的事情时,此进程必须完成了第一件事情之后再做第二件事,在单线程的工作模式下会堵塞,等待cpu处理完成之后在处理其他的事情,因此cpu的使用率会比较低。
  2)为了提高cpu的使用率,采用多线程的方式去同时完成几件事情而互补干扰,可以在相同时间点去做不同的事情,大大提高了cpu的使用率,可以避免进程堵塞。
  3)多线程中线程数不要太多,因为线程直接切换是需要时间的,在我们编码中就可以看得出来多线程中处理的线程函数,都是静态函数,也就是属于一个类的静态函数,因此多个线程在做同一件事情的话,优势不明显反而会大量消耗cpu。这种模式不可取。
  以上来自Python小白的个人看法;
页: [1]
查看完整版本: python-linux学习成长过程