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

以用户为中心 建设学校网站至少保存十个以上域名网站

以用户为中心 建设学校网站,至少保存十个以上域名网站,wordpress 自定义导航,网络服务遇到问题请稍后再试吧文章目录一、多任务是什么#xff1f;二、多任务-线程四、通过继承Tread类完成创建线程五、资源竞争六、同步与互斥锁七、对峙与避免死锁一、多任务是什么#xff1f; 多个函数同时执行一件事情就是多任务#xff0c;没有多任务的时候任务执行都是按照顺序的#xff0c;而… 文章目录一、多任务是什么二、多任务-线程四、通过继承Tread类完成创建线程五、资源竞争六、同步与互斥锁七、对峙与避免死锁一、多任务是什么 多个函数同时执行一件事情就是多任务没有多任务的时候任务执行都是按照顺序的而多任务的时候任务执行可以是同时的; 并行真的多任务 并发假的多任务 二、多任务-线程 import time import threading def sing():唱歌5秒for i in range(5):print(------正在唱歌------)time.sleep(1) def dance():跳舞5秒for i in range(5):print(------正在跳舞------)time.sleep(1) def main():t1threading.Thread(targetsing)t2threading.Thread(targetdance)t1.start()t2.start() if __name__ __main__:main()import threading def text1():for i in range(5):print(-----test1----%d----%i) def text2():for i in range(5):print(-----test2----%d----%i)#因为线程执行的过程中没有slip延时所以先谁后谁看cpu心情 def main():t1threading.Thread(targettext1)t2 threading.Thread(targettext2)t1.start()t2.start()print(threading.enumerate()) if __name__ __main__:main()import threading import timedef text1():for i in range(5):print(-----test1----%d----%i) def text2():for i in range(5):print(-----test2----%d----%i)#因为线程执行的过程中没有slip延时所以先谁后谁看cpu心情 def main():t1threading.Thread(targettext1)t2 threading.Thread(targettext2)t1.start()time.sleep(1)#休眠延时t2.start()time.sleep(1) # 休眠延时print(threading.enumerate()) if __name__ __main__:main()import threading import time def text1():for i in range(5):print(------text1------------%d----%i)time.sleep(1) #如果创建thread时执行的函数结束则意味着这个线程结束了 def text2():for i in range(10):print(-------text2-----------%d----%i)time.sleep(1) def main():t1threading.Thread(targettext1)t2threading.Thread(targettext2)t1.start()#只有在运行时才建立线程并且线程运行t2.start()while True:print(threading.enumerate)#threading.enumerate查看当前线程信息#enumerate返回值是一个元组thread_num len(threading.enumerate())print(线程数量是%d % thread_num)if thread_num1:#当只剩一个主线程的时候则退出,主线程结束则全线程结束故而主线程要等到最后保证其他线程执行完成breaktime.sleep(1) if __name____main__:main()#主线程最后退出还有一层作用就是清理各线程留下的垃圾四、通过继承Tread类完成创建线程 import threading import time class Mythread(threading.Thread):def run(self):for i in range(3):time.sleep(1)msgImself.namestr(i)#name属性中保存的是当前线程的名字print(msg) if __name____main__:tMythread()#调用类做线程的方法适合于一个线程里面做的东西比较复杂而且分成了很多个函数来做#这里创建了一个实例对象意味着只能创建一个线程一个线程同一时间只能执行一个函数t.start()#在类里面自动调用run方法并且只能调用run如果下面还有其他方法可以在run方法内部用语句调用不可以用“t.其他方法()”五、资源竞争 多个线程之间是共享全局变量的但是这里有个问题如果一个线程写一个线程读则不会出问题但是两个线程都去写就会出现问题资源竞争 #定义一个全局变量 import threading import timeg_num100 def test1():global g_numg_num1print(-------in test1 g_num%d-----%g_num) def test2():print(-------in test2 g_num%d-----%g_num) def main():t1threading.Thread(targettest1)t2threading.Thread(targettest2)t1.start()time.sleep(1)t2.start()time.sleep(1)print(------in main Thread g_num%d-----%g_num) if __name____main__:main()#定义一个全局变量 import threading import timedef test1(temp):temp.append(33)print(-------in test1 temp%s-----%str(temp)) def test2(temp):print(-------in test2 temp%s-----%str(temp)) g_num[11,22] def main():t1threading.Thread(targettest1,args(g_num,))#args里面一定是一个元组所以一定要写逗号t2threading.Thread(targettest2,args(g_num,))t1.start()time.sleep(1)t2.start()time.sleep(1)print(------in main Thread g_num%s-----%str(g_num)) if __name____main__:main()六、同步与互斥锁 同步概念、互斥锁解决资源竞争问题要么不做要么做完同步就是协同步调按预定的先后次序运行怎么做互斥锁当多个线程几乎同时修改某一个共享数据的时候需要进行同步控制线程同步能够保证多个线程安全访问的竞争资源最简单的同步机制是引入互斥锁某个线程要更改共享数据时先将其锁定此时资源的状态为锁定其他线程不能更改直到该线程释放资源将资源的状态变成”非锁定“其他的线程才能再次锁定该资源互斥锁保证了每次只有一个线程进行写入操作从而保证了多线程情况下数据的正确性。 #互斥锁创建mutexthreading.Lock() #锁定mutex.acquire() #释放mutex.release() #定义一个全局变量 import threading import time g_num0 def test1(num):global g_num#上锁如果之前没有被上锁那么此时上锁成功#如果上锁之前已经被上锁那么此时会堵塞在这里直到这个锁被解开mutex.acquire()for i in range(num):g_num1#解锁mutex.release()print(-----in test1 g_num%d----%g_num)def test2(num):global g_nummutex.acquire()for i in range(num):g_num1mutex.release()print(-----in test2 g_num%d----%g_num) #创建一个互斥锁默认是没有上锁的 mutexthreading.Lock()def main():t1threading.Thread(targettest1,args(100,))#args里面一定是一个元组所以一定要写逗号t2threading.Thread(targettest2,args(100,))t1.start()t2.start()time.sleep(3)if __name____main__:main()#定义一个全局变量 import threading import time g_num0 def test1(num):global g_numfor i in range(num):mutex.acquire()g_num1mutex.release()print(-----in test1 g_num%d----%g_num)def test2(num):global g_numfor i in range(num):mutex.acquire()g_num1mutex.release()print(-----in test2 g_num%d----%g_num) #创建一个互斥锁默认是没有上锁的 mutexthreading.Lock()def main():t1threading.Thread(targettest1,args(100,))#args里面一定是一个元组所以一定要写逗号t2threading.Thread(targettest2,args(100,))t1.start()t2.start()time.sleep(3)if __name____main__:main()七、对峙与避免死锁 当多个线程同时遇到死锁问题时可能产生对峙现象为了避免死锁有两种解决方法1、程序设计时尽量避免银行家算法2、添加超时时间等 银行家算法: 设Request(i)是进程Pi的请求向量如果Request(i)[j]k表示进程Pi需要K个R(j)类型的资源。当Pi发现资源请求后系统将进行下列步骤 (1)如果Request(i)[j] Need[i,j],边转向步骤2),否则认为出错因为它所请求的资源数已超过它所宣布的最大值。 (2)如果Request(i)[j] Available[i,j]便转向步骤3)否则表示尚无足够资源Pi需等待。 (3)系统试探着把资源分配给进程Pi并需要修改下面数据结构中的数值 Available[j] Available[j] - Request(i)[j]; Allocation[i,j] Allocation[i,j] Request(i)[j]; Need[i,j] Need[i,j] - Request(i)[j];
http://www.hkea.cn/news/14462833/

相关文章:

  • 网站建设的栏目内容邢台做网站的
  • 镇江网站建设方案短链接生成官网
  • 做网站要坚持青州网站建设青州
  • 电商网站话费充值怎么做网站维护一次多少钱
  • 做艺术品展览的网站微信下载网址是多少
  • 佛山合展商务网站建设正版电子商务网
  • 网站怎么设计抖音seo工具
  • 手机精品网站建设ae模板网
  • 什么网站备案容易审核沈阳网站建设q479185700棒
  • 网站怎么免费做推广好品质高端网站设计新感觉建站
  • 做网站的工资高host wordpress
  • 暖色调网页设计网站自己画装修设计图的软件
  • 电气网站开发网站建设公司广
  • 优秀网站参考移动网站建设价格便宜
  • 网站设计哪家强软件app下载免费
  • 查看网站外链代码设计图纸平面图
  • 网站的管理和维护精准营销的营销方式
  • 做易经网站网站建设上qq图标去除
  • 做网站为什么选择竞网智赢假发网站是怎么做的
  • 成都微网站公司网络服务商包括
  • 织梦cms做网站教程视频定制网站开发的意思
  • 邢台网站制作的地方通辽市城乡建设局网站
  • 遵义网站设计公司网站运营与管理的内容有哪些
  • flash网站欣赏个人网站cms
  • 网站模板 外贸工厂php 开源的企业网站
  • 企业网站配色绿色配什么色合适网站备案怎么查询
  • wordpress nginx gzip吐鲁番seo招聘
  • 网站建设维护费一年多少钱公司介绍50字
  • 玉田网站设计公司php网站开发的技术框架
  • 网站建设招标样本比wordpress好用