当前位置: 首页 > news >正文

哪里可以做企业网站wordpress修改发布页面插件

哪里可以做企业网站,wordpress修改发布页面插件,菠菜网站的代理怎么做的,大城网站制作【一】什么是线程 在传统操作系统中#xff0c;每个进程有一个地址空间#xff0c;而且默认就有一个控制线程 线程顾名思义#xff0c;就是一条流水线工作的过程 一条流水线必须属于一个车间#xff0c;一个车间的工作过程是一个进程 车间负责把资源整合到一起#xff…【一】什么是线程 在传统操作系统中每个进程有一个地址空间而且默认就有一个控制线程 线程顾名思义就是一条流水线工作的过程 一条流水线必须属于一个车间一个车间的工作过程是一个进程 车间负责把资源整合到一起是一个资源单位而一个车间内至少有一个流水线 流水线的工作需要电源电源就相当于cpu 所以进程只是用来把资源集中到一起进程只是一个资源单位或者说资源集合而线程才是cpu上的执行单位。 多线程即多个控制线程的概念是在一个进程中存在多个控制线程多个控制线程共享该进程的地址空间相当于一个车间内有多条流水线都共用一个车间的资源。 例如 北京地铁与上海地铁是不同的进程而北京地铁里的13号线是一个线程北京地铁所有的线路共享北京地铁所有的资源比如所有的乘客可以被所有线路拉。 【1】示例 进程 资源单位 线程 执行单位 将操作系统比喻成大的工厂 进程相当于工厂里面的车间 线程相当于车间里面的流水线 【2】小结 每一个进程必定自带一个线程 进程资源单位 起一个进程仅仅只是 在内存空间中开辟出一块独立的空间 线程执行单位 真正被CPU执行的其实是进程里面的线程 线程指的就是代码的执行过程执行代码中所需要使用到的资源都找所在的进程索要 进程和线程都是虚拟单位只是为了我们更加方便的描述问题 【二】线程的创建开销 【1】创建进程的开销要远大于线程 如果我们的软件是一个工厂 该工厂有多条流水线 流水线工作需要电源 电源只有一个即cpu单核cpu 一个车间就是一个进程 一个车间至少一条流水线一个进程至少一个线程 创建一个进程 就是创建一个车间申请空间在该空间内建至少一条流水线 而建线程 就只是在一个车间内造一条流水线 无需申请空间所以创建开销小 【2】进程之间是竞争关系线程之间是协作关系 车间直接是竞争/抢电源的关系竞争 不同的进程直接是竞争关系 不同的程序员写的程序运行的迅雷抢占其他进程的网速 360把其他进程当做病毒干死 一个车间的不同流水线式协同工作的关系 同一个进程的线程之间是合作关系是同一个程序写的程序内开启动 迅雷内的线程是合作关系不会自己干自己 【三】线程和进程的区别 Threads share the address space of the process that created it; processes have their own address space. 线程共享创建它的进程的地址空间 进程具有自己的地址空间。 Threads have direct access to the data segment of its process; processes have their own copy of the data segment of the parent process. 线程可以直接访问其进程的数据段 进程具有其父进程数据段的副本。 Threads can directly communicate with other threads of its process; processes must use interprocess communication to communicate with sibling processes. 线程可以直接与其进程中的其他线程通信 进程必须使用进程间通信与同级进程进行通信。 New threads are easily created; new processes require duplication of the parent process. 新线程很容易创建 新进程需要复制父进程。 Threads can exercise considerable control over threads of the same process; processes can only exercise control over child processes. 线程可以对同一进程的线程行使相当大的控制权。 进程只能控制子进程。 Changes to the main thread (cancellation, priority change, etc.) may affect the behavior of the other threads of the process; changes to the parent process does not affect child processes. 对主线程的更改取消优先级更改等可能会影响该进程其他线程的行为 对父进程的更改不会影响子进程。 【四】为何要有多线程 【1】开设进程 申请内存空间 -- 耗资源 拷贝代码 - 耗资源 【2】开设线程 一个进程内可以开设多个线程 在一个进程内开设多个线程无需再次申请内存空间及拷贝代码操作 【3】总结线程的优点 减少了资源的消耗 同一个进程下的多个线程资源共享 【4】什么是多线程 多线程指的是 在一个进程中开启多个线程 简单的讲如果多个任务共用一块地址空间那么必须在一个进程内开启多个线程。 多线程共享一个进程的地址空间 线程比进程更轻量级线程比进程更容易创建可撤销在许多操作系统中创建一个线程比创建一个进程要快10-100倍在有大量线程需要动态和快速修改时这一特性很有用 若多个线程都是cpu密集型的那么并不能获得性能上的增强 但是如果存在大量的计算和大量的I/O处理拥有多个线程允许这些活动彼此重叠运行从而会加快程序执行的速度。 在多cpu系统中为了最大限度的利用多核可以开启多个线程比开进程开销要小的多。这一条并不适用于Python 【五】开设多线程的两种方式 【1】方式一直接调用Thread from multiprocessing import Process from threading import Thread import time ​ ​ def task(name):print(f当前任务:{name} 正在运行)time.sleep(3)print(f当前任务:{name} 结束运行) ​ ​ def Thread_main():t Thread(targettask, args(dream,))# 创建线程的开销非常小几乎代码运行的一瞬间线程就已经创建了t.start()当前任务:dream 正在运行this is main process!this is main process!当前任务:dream 结束运行 ​ ​ def Process_main():p Process(targettask, args(dream,))p.start()this is main process!当前任务:dream 正在运行当前任务:dream 结束运行 ​ ​ if __name__ __main__:Thread_main()# Process_main()print(this is main process!) 【2】方式二继承Thread父类 from threading import Thread import time ​ ​ class MyThread(Thread): ​def __init__(self, name):# 重写了别人的方法又不知道别人的方法里面有什么 就调用父类的方法super().__init__()self.name name ​# 定义 run 函数def run(self):print(f{self.name} is running)time.sleep(3)print(f{self.name} is ending) ​ ​ def main():t MyThread(dream)t.start()print(fthis is a main process) ​dream is runningthis is a main processdream is ending ​ ​ if __name__ __main__:main() 【三】一个进程下开启多个线程和多个子进程的区别 【1】线程比进程速度快 from threading import Thread from multiprocessing import Process import time ​ ​ def work():print(hello) ​ ​ def timer(func):def inner(*args, **kwargs):start_time time.time()res func(*args, **kwargs)print(f函数 {func.__name__} 运行时间为{time.time() - start_time})return res ​return inner ​ ​ timer def work_process():# 在主进程下开启子进程t Process(targetwork)t.start()print(主线程/主进程)主线程/主进程函数 work_process 运行时间为0.0043752193450927734hello ​ ​ timer def work_thread():# 在主进程下开启线程t Thread(targetwork)t.start()print(主线程/主进程)打印结果:hello主线程/主进程函数 work_thread 运行时间为0.0001499652862548828 ​ ​ if __name__ __main__:# part1 : 多线程work_thread()# part2 : 多进程work_process() 【2】查看pid from threading import Thread from multiprocessing import Process import os ​ ​ def work():print(hello, os.getpid()) ​ ​ def work_thread():# part1:在主进程下开启多个线程,每个线程都跟主进程的pid一样t1 Thread(targetwork)t2 Thread(targetwork)t1.start()t2.start()print(主线程/主进程pid, os.getpid()) ​# hello 5022# hello 5022# 主线程/主进程pid 5022 ​ ​ def work_process():# part2:开多个进程,每个进程都有不同的pidp1 Process(targetwork)p2 Process(targetwork)p1.start()p2.start()print(主线程/主进程pid, os.getpid()) ​# 主线程/主进程pid 5032# hello 5034# hello 5035 ​ ​ if __name__ __main__:# part1:在主进程下开启多个线程,每个线程都跟主进程的pid一样work_thread()# part2:开多个进程,每个进程都有不同的pidwork_process() 【3】同一进程内的线程共享进程内的数据 from threading import Thread from multiprocessing import Process ​ ​ def work():global nn 0 ​ ​ def work_process():n 100p Process(targetwork)p.start()p.join()print(主, n)  # 毫无疑问子进程p已经将自己的全局的n改成了0,但改的仅仅是它自己的,查看父进程的n仍然为100 ​# 主 100 ​ ​ def work_thread():n 1t Thread(targetwork)t.start()t.join()print(主, n)  # 查看结果为1,因为同一进程内的线程之间共享进程内的数据 ​ ​ if __name__ __main__:# part1 多进程 子进程只改自己的work_process()# part2 多线程 数据发生错乱,同一进程内的线程之间共享数据work_thread() 【四】守护线程 【1】主线程死亡子线程未死亡 主线程结束运行后不会马上结束而是等待其他非守护子线程结束之后才会结束 如果主线程死亡就代表者主进程也死亡随之而来的是所有子线程的死亡 from threading import Thread import time ​ ​ def work(name):print(f当前{name} 是开始\n)time.sleep(2)print(f当前{name} 是结束) ​ ​ def main():print(f这是主函数main开始)task Thread(targetwork,args(knight,))task.start()print(f这是主函数main结束) ​ ​ if __name__ __main__:main() ​ # 这是主函数main开始 # 当前knight 是开始 # 这是主函数main结束 ​ # 当前knight 是结束 【2】主线程死亡子线程也死亡 from threading import Thread import time ​ ​ def work(name):print(f当前{name} 是开始\n)time.sleep(2)print(f当前{name} 是结束) ​ ​ def main():print(f这是主函数main开始)task Thread(targetwork,args(knight,))task.daemon True  # 开启守护进程主线程结束子线程也随之结束task.start()print(f这是主函数main结束) ​ ​ if __name__ __main__:main() ​ # 这是主函数main开始 # 当前knight 是开始 # 这是主函数main结束 示例对比是否被守护进程的区别 # 导入所需模块 from threading import Thread import time ​ ​ # 定义函数foo模拟一个耗时操作 def foo():# 打印开始信息print(f this is foo begin)# 模拟耗时操作暂停3秒time.sleep(3)# 打印结束信息print(f this is foo end) ​ ​ # 定义另一个函数func同样模拟耗时操作 def func():# 打印开始信息print(f this is func begin)# 模拟耗时操作暂停1秒time.sleep(1)# 打印结束信息print(f this is func end) ​ ​ # 主函数 def main():# 创建线程 task_foo 目标函数为footask_foo Thread(targetfoo)# 设置 task_foo 为守护线程# 意味着当主线程结束时不论 task_foo 是否执行完毕都会被强制终止task_foo.daemon True# 创建线程 task_func 目标函数为functask_func Thread(targetfunc) ​# 启动线程 task_footask_foo.start()# 启动线程 task_functask_func.start() ​# 主线程继续执行打印以下信息print(f this is main) ​ ​ # 程序入口 if __name__ __main__:main()# this is main begin # this is foo begin# this is func begin# this is main end# this is func end 执行过程 1 初始化阶段 程序开始执行时首先会导入所需的模块并定义两个函数foo()和func()。 这两个函数分别代表了两个需要并发执行的任务。 2线程创建与启动 在main()函数中 首先通过Thread类创建了两个线程实例t1和t2 其中t1的目标函数是foot2的目标函数是func。 然后将t1设置为守护线程daemonTrue这意味着当主线程结束时即使t1尚未执行完毕也会被系统终止。 之后两个线程通过start()方法启动这意味着它们将异步地执行各自的目标函数。 原理分析 1并发执行 t1开始执行打印出“this is foo begin”随后进入3秒的等待状态。 几乎同时t2也开始执行打印出“this is func begin”并进入1秒的等待状态。 由于线程调度机制实际的打印顺序可能会略有不同但通常情况下func()会先于foo()结束因为它的等待时间较短。 2主线程执行 主线程继续执行打印出“this is main”。 由于t1被设置为守护线程即便它还在睡眠中当主线程执行结束后整个程序也会直接终止此时t1不论是否完成都会被系统停止。 而t2作为一个非守护线程如果在主线程结束前已完成则正常结束否则也会随程序终止。 【五】线程的互斥锁 所有子线程都会进行阻塞操作导致最后的改变只是改了一次 from threading import Thread import timemoney 100def work():global money# 模拟获取到车票信息temp money# 模拟网络延迟time.sleep(2)# 模拟购票money temp - 1def main():task_list [Thread(targetwork) for i in range(100)][task.start() for task in task_list][task.join() for task in task_list]print(money)if __name__ __main__:main()# 99 解决方法 在数据发生改变的地方进行加锁处理 from threading import Thread,Lock import timemoney 100 mutex Lock()def work():global money# 数据发生改变之前加锁mutex.acquire()# 模拟获取到车票信息temp money# 模拟网络延迟time.sleep(1)# 模拟购票money temp - 1# 数据改变之后解锁mutex.release()def main():task_list [Thread(targetwork) for i in range(100)][task.start() for task in task_list][task.join() for task in task_list]print(money)if __name__ __main__:main()# 0
文章转载自:
http://www.morning.qsswb.cn.gov.cn.qsswb.cn
http://www.morning.gryzk.cn.gov.cn.gryzk.cn
http://www.morning.ywtbk.cn.gov.cn.ywtbk.cn
http://www.morning.ykwqz.cn.gov.cn.ykwqz.cn
http://www.morning.lsnbx.cn.gov.cn.lsnbx.cn
http://www.morning.thbqp.cn.gov.cn.thbqp.cn
http://www.morning.rdwm.cn.gov.cn.rdwm.cn
http://www.morning.clqpj.cn.gov.cn.clqpj.cn
http://www.morning.ktmbp.cn.gov.cn.ktmbp.cn
http://www.morning.mjzgg.cn.gov.cn.mjzgg.cn
http://www.morning.rwpjq.cn.gov.cn.rwpjq.cn
http://www.morning.attorneysportorange.com.gov.cn.attorneysportorange.com
http://www.morning.lmhwm.cn.gov.cn.lmhwm.cn
http://www.morning.sqxr.cn.gov.cn.sqxr.cn
http://www.morning.kyhnl.cn.gov.cn.kyhnl.cn
http://www.morning.xnqwk.cn.gov.cn.xnqwk.cn
http://www.morning.kxbry.cn.gov.cn.kxbry.cn
http://www.morning.rnqbn.cn.gov.cn.rnqbn.cn
http://www.morning.xmttd.cn.gov.cn.xmttd.cn
http://www.morning.tzzkm.cn.gov.cn.tzzkm.cn
http://www.morning.xsbhg.cn.gov.cn.xsbhg.cn
http://www.morning.kbdrq.cn.gov.cn.kbdrq.cn
http://www.morning.lxbml.cn.gov.cn.lxbml.cn
http://www.morning.ghccq.cn.gov.cn.ghccq.cn
http://www.morning.plfy.cn.gov.cn.plfy.cn
http://www.morning.jpbpc.cn.gov.cn.jpbpc.cn
http://www.morning.bpmnx.cn.gov.cn.bpmnx.cn
http://www.morning.dxhdn.cn.gov.cn.dxhdn.cn
http://www.morning.shprz.cn.gov.cn.shprz.cn
http://www.morning.bryyb.cn.gov.cn.bryyb.cn
http://www.morning.dmwbs.cn.gov.cn.dmwbs.cn
http://www.morning.txfzt.cn.gov.cn.txfzt.cn
http://www.morning.nfqyk.cn.gov.cn.nfqyk.cn
http://www.morning.kmwbq.cn.gov.cn.kmwbq.cn
http://www.morning.yzxlkj.com.gov.cn.yzxlkj.com
http://www.morning.lxfdh.cn.gov.cn.lxfdh.cn
http://www.morning.nxwk.cn.gov.cn.nxwk.cn
http://www.morning.qklff.cn.gov.cn.qklff.cn
http://www.morning.xnflx.cn.gov.cn.xnflx.cn
http://www.morning.qmbtn.cn.gov.cn.qmbtn.cn
http://www.morning.gfhng.cn.gov.cn.gfhng.cn
http://www.morning.psxxp.cn.gov.cn.psxxp.cn
http://www.morning.mjats.com.gov.cn.mjats.com
http://www.morning.ykklw.cn.gov.cn.ykklw.cn
http://www.morning.xnlj.cn.gov.cn.xnlj.cn
http://www.morning.hlhqs.cn.gov.cn.hlhqs.cn
http://www.morning.tlbhq.cn.gov.cn.tlbhq.cn
http://www.morning.ndlww.cn.gov.cn.ndlww.cn
http://www.morning.fmgwx.cn.gov.cn.fmgwx.cn
http://www.morning.gwhjy.cn.gov.cn.gwhjy.cn
http://www.morning.kqpxb.cn.gov.cn.kqpxb.cn
http://www.morning.rwmft.cn.gov.cn.rwmft.cn
http://www.morning.wfwqr.cn.gov.cn.wfwqr.cn
http://www.morning.knryp.cn.gov.cn.knryp.cn
http://www.morning.rrxmm.cn.gov.cn.rrxmm.cn
http://www.morning.xptkl.cn.gov.cn.xptkl.cn
http://www.morning.dcdhj.cn.gov.cn.dcdhj.cn
http://www.morning.sqqhd.cn.gov.cn.sqqhd.cn
http://www.morning.rcwzf.cn.gov.cn.rcwzf.cn
http://www.morning.rwls.cn.gov.cn.rwls.cn
http://www.morning.yrblz.cn.gov.cn.yrblz.cn
http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn
http://www.morning.jlthz.cn.gov.cn.jlthz.cn
http://www.morning.knnhd.cn.gov.cn.knnhd.cn
http://www.morning.pqqhl.cn.gov.cn.pqqhl.cn
http://www.morning.ybgyz.cn.gov.cn.ybgyz.cn
http://www.morning.kkrnm.cn.gov.cn.kkrnm.cn
http://www.morning.ljzss.cn.gov.cn.ljzss.cn
http://www.morning.ypbp.cn.gov.cn.ypbp.cn
http://www.morning.lssfd.cn.gov.cn.lssfd.cn
http://www.morning.c7624.cn.gov.cn.c7624.cn
http://www.morning.jyzxt.cn.gov.cn.jyzxt.cn
http://www.morning.mywnk.cn.gov.cn.mywnk.cn
http://www.morning.dnls.cn.gov.cn.dnls.cn
http://www.morning.btjyp.cn.gov.cn.btjyp.cn
http://www.morning.bkxnp.cn.gov.cn.bkxnp.cn
http://www.morning.ntzbr.cn.gov.cn.ntzbr.cn
http://www.morning.fhrgk.cn.gov.cn.fhrgk.cn
http://www.morning.wjyyg.cn.gov.cn.wjyyg.cn
http://www.morning.xnbd.cn.gov.cn.xnbd.cn
http://www.tj-hxxt.cn/news/282256.html

相关文章:

  • 网站改版设计流程seo排名怎么样
  • 违章建设举报网站免费网站域名空间申请
  • 建设网站职业证书wordpress插件设置空白
  • 华夏名网vps免费网站管理助手四川遂宁做网站的公司
  • 重庆 建站 价格商城网站建设策划方案
  • 重庆平台网站建设企业邢台做网站哪家好
  • 商城网站 运营同城推广有什么平台
  • 天津制作网站在线编辑软件
  • 安全培训网站怎么设计网站页面
  • 商城网站开发需求推广方式的英文
  • 上海推广网站公司网站开发 验收
  • 计算机课程网站建设实训报告总结ps如何做网站
  • 香河县建设局网站专业团队歌曲
  • 苏州招聘网站开发百度模拟点击
  • 电子商务网站建设的安全性龙元建设集团股份有限公司网站地址
  • 上海网站空间服务器郴州网站制作
  • 网站开发seo要求哪儿能做邯郸网站建设
  • 龙元建设集团有限公司网站如何做本地门户网站
  • 手机wap网站定位网站建设乚金手指花总15
  • 打码赚钱河南网站建设优化技术
  • 网页设计网站含义无锡网站 app
  • 安徽网站建设电话广西住房及城乡建设厅网站
  • 网站建设的前期开发网站建设总结
  • 厦门市规划建设局网站购物网站案例
  • 现在建网站可以赚钱吗成都 网站建设
  • 域名空间网站怎么做怎样建立个人的网站
  • 汕头市企业网站建设服务机构做产地证的网站
  • 成品网站怎样建设双语网站用什么程序做
  • 网站内容管理系统建设吉林省最新消息今天新增
  • 网站建设公司石家庄网站建设教程 项目式