美文网首页
网络系统

网络系统

作者: 心软脾气硬01 | 来源:发表于2018-10-16 20:46 被阅读0次
  1. 程序:一堆冷冰冰的代码,编写完毕的代码,在没有运行的时候,称之为程序
    进程:把程序运行起来就会开启进程,正在运行着的代码,就成为进程

  2. getpid:获取进程号
    getppid:获取父进程号

  3. 单核CPU是怎么执行多任务的呢?
    操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务3,执行0.01秒……这样反复执行下去。表面上看,每个任务都是交替执行的,但是,由于CPU的执行速度实在是太快了,我们感觉就像所有任务都在同时执行一样。

  4. 并行:一起执行
    并发:看似一起执行,其实按一定顺序执行

import os
pid=os.fork()
if pid==0:
    print('子进程')
else:
    print('父进程')
  1. os.fork()
    子进程返回的是0
    父进程返回的是子进程的pid
    多进程中,每个进程中所有数据(包括全局变量)都各有拥有一份,互不影响-----------全局变量对于进程是不共享的

  2. 实现多进程

from multiprocessing import Process
import time
def work():
    for i in range(5):
        time.sleep(1)
        print('呵呵')
p=Process(target=work)
p.start()
  1. 用面向对象的方式实现多进程
from multiprocessing import Process
import time
class MyProcess(Process):
    def __init__(self):#初始化父类方法
        super().__init__()
    def run(self):#重写run方法
        for i in range(5):
            time.sleep(1)
            print('哈哈')
p=MyProcess()
p.start()
p.join(3)
print('呵呵')
  1. 用进程池的方式创建进程
from multiprocessing import Pool
import time
def work():
    for i in range(5):
        time.sleep(1)
        print('老王')
p=Pool(3)
for i in range(3):
    p.apply_async(work)#非阻塞添加进程
    #p.apply(work)#阻塞
    print('添加成功')
p.close()#把池子关闭
p.join()
  1. 用Queue实现多进程通信
from multiprocessing import Pool,Manager
import time
def write(q):
    for i in range(5):
        time.sleep(0.5)
        print('添加成功')
        q.put(i)
def read(q):
    while True:
        if q.qsize()>0:
            print(q.get())
        if q.get()==4:
            break
p=Pool(3)
q=Manager().Queue()
p.apply(write,(q,))
p.apply(read,(q,))
p.close()
p.join()
  1. threading线程实现多任务
import time
from threading import Thread
def say():
    time.sleep(1)
    print('我错了,我能站起来了吗?')
for i in range(5):
    t=Thread(target=say)
    t.start()

主线程会等待所有的子线程结束后才结束

  1. 用面向对象的实现
from threading import Thread
import time

class MyThread(Thread):

    def run(self):
        for i in range(3):
            time.sleep(1)
            print("我爱你中国")
t = MyThread()
t.start()
t1 = MyThread()
t1.start()
  1. 全局变量对于线程共享(对于进程不共享)
from threading import Thread
import threading 
import time
num = 0

def test1():
    global num
    num+=1
    time.sleep(1)
    print(threading.currentThread().name)
    print('test1',num)

def test2():
    time.sleep(3)
    print("test2",num)

t1 = Thread(target=test1)
t1.start()

t2 = Thread(target=test2)
t2.start()

局部变量对于进程不共享

相关文章

  • netstat命令

    netstat作用:查看Linux中网络系统状态信息,netstat命令 用来打印Linux中网络系统的状态信息,...

  • 网络系统安全建设

    网络系统安全建设 安全域划分 内部网络系统:主要指OA办公网内部、生产网内部、测试开发网内部、以及其他内部网络系统...

  • 4神经系统讲解

    神经网络系统它并不是一个经络的系统,它远比一个经络系统要涵盖的东西大很多,那什么样是神网络系统,神经网络系统顾名思...

  • 网络系统

    程序:一堆冷冰冰的代码,编写完毕的代码,在没有运行的时候,称之为程序进程:把程序运行起来就会开启进程,正在运行着的...

  • 网络系统2

    进程和线程进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进...

  • 网络系统随想

    下午跟兄弟们聊起网络系统中数据库出问题的时候往往会发现原来是前置系统流量异常导致数据库异常,而完全由数据库系统本身...

  • 门禁网络系统

    最早出现网络化门禁是在上世纪九十年代。随着门禁系统应用范围的日渐广泛,人们对门禁系统的诉求不再局限于单一的出入口控...

  • XAG瑞波基因简介

    1,瑞波公司,瑞波基金,瑞波联储,打造了瑞波网络系统。并且构成了瑞波管理系统。 2,瑞波网络系统是金融支付工具。服...

  • 1.13读书笔记

    1.13俞敏洪/《不负我心》 读完以后你就会发现思想像是网络系统,当这张网络系统形成以后.一个想法没能解决问题,另...

  • 超市无线覆盖要多少钱?

    许多超市都有自己的公共无线网络系统。这样一个大型的公共无线网络系统可以为超级市场所有地区的所有消费者提供最好的互联...

网友评论

      本文标题:网络系统

      本文链接:https://www.haomeiwen.com/subject/zxrkzftx.html