网站规划与开发技术属于什么大类做自媒体资源的网站

web/2025/10/4 19:26:56/文章来源:
网站规划与开发技术属于什么大类,做自媒体资源的网站,做企业商城网站,山西智能建站系统价格多线程 线程 1.什么是线程 进程是一个执行空间 , 线程就是其中真正工作的单位 , 每一个进程至少有一个线程(如果我们把操作系统比喻为一个工厂 , 进程就是车间 , 线程就是流水线) 进程包含了运行该程序所需要所有资源 , 进程是一个资源单位 , 线程是CPU的最小执行单位 每一个进…多线程 线程 1.什么是线程 进程是一个执行空间 , 线程就是其中真正工作的单位 , 每一个进程至少有一个线程(如果我们把操作系统比喻为一个工厂 , 进程就是车间 , 线程就是流水线) 进程包含了运行该程序所需要所有资源 , 进程是一个资源单位 , 线程是CPU的最小执行单位 每一个进程一旦被创建 , 就默认开启了一条线程 , 称之为主线程 2.为什么使用线程 多线程指的是在一个进程中开启多个线程简单的讲如果多个任务共用一块地址空间那么必须在一个进程内开启多个线程。详细的讲分为4点 多线程共享一个进程的地址空间 线程比进程更轻量级线程比进程更容易创建可撤销在许多操作系统中创建一个线程比创建一个进程要快10-100倍在有大量线程需要动态和快速修改时这一特性很有用 若多个线程都是CPU密集型的那么并不能获得性能上的增强但是如果存在大量的计算和大量的I/O处理拥有多个线程允许这些活动彼此重叠运行从而会加快程序执行的速度。 在多CPU系统中为了最大限度的利用多核可以开启多个线程比开进程开销要小的多。这一条并不适用于python 使用线程可以提高程序效率 为何不用多进程提高效率 : 是因为进程对操作系统的资源耗费非常高 3.线程与进程的区别: 线程共享创建它的进程的地址空间 ; 进程有自己的地址空间。 线程可以直接访问其进程的数据段;进程拥有自己父进程数据段的副本。 线程可以直接与其进程的其他线程通信;进程必须使用进程间通信来与兄弟进程通信。 新线程很容易创建;新流程需要复制父流程。线程可以对同一进程的线程进行相当大的控制;进程只能控制子进程。对主线程的更改取消优先级更改等可能会影响进程的其他线程的行为;对父进程的更改不会影响子进程。 4.什么时候开启多线程 当程序中遇到IO操作时(当程序中时纯计算任务时 也无法提高效率) 5.如何使用 from threading import Thread 创建线程与创建进程的方式几乎一样 , 但是创建子进程会将父进程的资源复制执行一遍 , 所以必须在__main__下执行 , 而创建线程则不一样 , 线程间共享进程资源,所以不需要复制执行父线程代码,所以可以不加__main__。 一 . 创建线程的两种方式 调用类型 from threading import Thread ​ ​ def task():print(thread running...) ​ ​ if __name__ __main__:t Thread(targettask)t.start() ​print(主线程) ​ # 执行结果 # thread running... (子线程比主线程执行速度更快) # 主线程 继承类型 from threading import Thread ​ ​ class Sayhi(Thread):def __init__(self,name):super().__init__()self.namenamedef run(self):print(%s say hello % self.name) ​ ​ if __name__ __main__:t Sayhi(jason)t.start()print(主线程)# 执行结果 #jason say hello #主线程   二 . 线程的常用方法 Thread实例化对象的方法: # 1.isAlive(): 判断线程是否还存在(未终止) # 2.getName(): 返回线程名 # 3.setName(): 设置线程名 ​ threading模块下提供的方法 # threading.currentThread(): 返回当前的线程变量 # threading.enumerate(): 返回一个正在运行的线程列表 # threading.activecount(): 返回当前运行的线程数量 # len(threading.activecount()): 与上一个方法返回相同值   三 . 在一个进程下开启多个线程与在一个进程下开启多个子进程的区别 开启速度 : 开启线程开启进程(所以程序效率会大大提高) id : 进程开启多线程的pid都相同 ( 很好理解pid是process id , 所以线程pid相同) 进程开启多个进程的pid不同 空间资源: 进程开启的多线程的共享进程内的资源 , 某线程修改数据后 . 其他线程再访问则是新的数据 进程开启多个子进程的数据互相独立 , 子进程内修改数据不会对其他进程数据造成干扰   守护线程 守护线程(setdaemon) 守护线程 : 守护线程会在所有非守护线程结束后结束 守护线程本质是上是在守护主线程 ,但是对于主线程来说 , 运行完毕指的是主线程所在的进程内所有非守护进程统统运行完毕,主线程才算运行完毕 from threading import Thread import time ​ def task1():print(sub thread is running...)time.sleep(0.5)print(sub thread end...) def task2():time.sleep(0.1)print(task2 is run...) ​ t1 Thread(targettask1) t2 Thread(target task2) ​ t1.setDaemon(True) # 将t1设置为守护线程, 必须在start之前设置 ​ t1.start() t2.strat() ​ # 执行结果 #sub thread run... #task2 is run... ​ ​   线程互斥锁(Lock) 什么时候用锁 : 当多个进程或多个线程需要同时修改同一份数据时,可能会造成数据错乱,所以必须加锁 import time from threading import Thread,Lock ​ lock Lock() # 实例化锁对象 ​ a 100 ​ def task():lock.acquire() # 给线程上锁global a # 访问全局atemp a - 1 # 修改全局atime.sleep(0.01)a templock.release() # 释放锁,线程执行完毕 ​ ts [] for i in range(100):t Thread(targettask)t.start()ts.append(t) ​ for t in ts: # lock保证了多线程串行,同时主线程print(a)也在其中,但是我们想得到最终结果,所以用join人为设置顺序t.join() ​ ​ print(a) 信号量(Semaphore) 信号量: 其实也是一种锁 , 特点是可以设置一个数据可以被几个线程(进程)共享. 与普通锁的区别: 普通锁一旦加锁,则意味着这个数据在同一时间只能被一个线程使用 信号量这种锁,特点是可以设置一个数据可以被几个线程(进程)共享 使用场景 可以限制一个数据同时访问的次数 , 保证程序正常运行 from threading import Thread,Semaphore import time sem Semaphore(3) # 设置最大访问进程数 ​ ​ def task():sem.acquire()print(你好啊)time.sleep(3)sem.release() ​ ​ for i in range(10):t Thread(targettask) ​t.start()# 执行结果太长, 就不打印了 # 现象描述 : 就是3个一次打印 守护进程的使用 用生产者消费者模型实现一个顾客吃汉堡的功能 主要是生产者生产处汉堡放入队列,然后消费者吃掉, 要判断什么时候顾客吃完了所有生产了的汉堡from multiprocessing import Process, JoinableQueue import time, random ​ def eat_hotdog(name, q):while True:res q.get()print(%s吃了%s % (name,res))time.sleep(random.randint(1,2))q.task_done() ​ ​ def make_Hotdog(name, q):for i in range(1,6):time.sleep(random.randint(1,2))print(%s生产了第%s个热狗 % (name, i))res %s的%s个热狗 % (name,i)q.put(res) ​ ​ if __name__ __main__:q JoinableQueue() ​#生产者c1 Process(targetmake_Hotdog, args(a热狗店, q))c1.start() ​#生产者2c2 Process(targetmake_Hotdog, args(b热狗店,q))c2.start() ​# 消费者p2 Process(targeteat_hotdog, args(顾客,q))p2.daemon True # 队列阻塞打开,主进程执行完毕,守护进程死p2.start() ​ ​# 保证生产者全部完成c1.join()c2.join() ​ ​# 保证队列中的数据全部被处理了join:阻止直到队列中的所有项目都已获取并处理完毕。 ​每当项目添加到队列时未完成任务的计数就会增加。 每当消费者调用task_done以指示该项目已被检索并且其上的所有工作都已完成时计数就会下降。 当未完成任务的数量降至零时join取消阻塞。q.join() # JoinableQueue方法  转载于:https://www.cnblogs.com/liusijun113/p/10211715.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国内网站赏析扁平化 wordpress 主题

在JavaScript中,map() 是一个数组方法,它创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后的返回值。这个方法不会改变原数组。 map() 方法的基本语法如下: javascriptarray.map(function(currentValue, index,…

网站如何被谷歌收录网站模板源码

对象解构是将对象属性和方法快速批量赋值给一系列变量的简洁语法 一:基本语法 const obj {uname: 微木,age: 10}const { uname, age } objconsole.log(uname, age); 对象解构的变量名要与解构对象中属性名相同,否则就会返回undefined解构的变量名不能…

广州做网站海珠信科记事本做网站文字居中

本文来说下使用kibana查看和展示es数据 文章目录 数据准备查询所有文档示例kibana查看和展示es数据 数据准备 可以使用es的命令或者java程序来往,es进行新增数据 查询所有文档示例 在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:92…

网站建设要多少钱app盐城网站建设培训班

项目场景&#xff1a; 项目中要根据一个模型 id 的数组列表&#xff0c;来查询所有模型的数据我需要对同一个接口循环发送多个请求&#xff0c;次数不定必须等所有结果返回后&#xff0c;再处理数据&#xff0c;并展示 实现方法&#xff1a; <script> export default …

外贸网站建设报价正规网站建设公司在哪里

1.预备知识 认识端口号 端口号(port)是传输层协议的内容&#xff1a; 端口号是一个2字节16位的整数(uint16)端口号用来标识主机上的一个进程IP地址port能够标识网络上的某一台主机和某一个进程一个端口号只能被一个进程占用 认识TCP协议 此处我们先对TCP(Transmission Con…

网站建设 八羊某班级网站建设方案论文

9.写出float x 与“零值”比较的if语句。 if(x > 0.000001 && x < -0.000001) 权重&#xff1a;高 备注&#xff1a;实际编程时要注意 12、已知一个数组table&#xff0c;用一个宏定义&#xff0c;求出数据的元素个数。 参考答案&#xff1a; #define NTBL (size…

做山西杂粮的网站网站建设完整步骤

每天那么多的工作&#xff0c;总喜欢写一些Tips提醒自己。但是如果全部都写在小纸条上&#xff0c;贴在电脑边上&#xff0c;每日身边飞扬着无数小纸条&#xff0c;实在是太讨厌啦&#xff01;这时候&#xff0c;不妨试试一款电脑桌面便签软件——小鱼便签&#xff0c;让你的办…

爱游戏app下载官方网站清远网站设计公司

前言:用CAP有一段时间了,这里简单记录一下,这么好用的东西,小伙伴们赶紧上车吧一.CAP使用场景?平时工作中经常使用到MQ,如(kafka,rabbitmq...),用来简单的发布/订阅,经常会遇到以下几个问题常用方案,把SQL放前面,MQ放后面,MQ执行失败了,我们把整个SQL进行回滚,这种方案在单应用…

西安网站设计 牛人网络ppt设计怎么赚钱

文章目录 TCP重传机制详解——02 SACKSACK是什么&#xff1f;为什么要有SACK&#xff1f;实际场景抓包具体显示信息流程 实战抓包讲解SACK关闭场景下&#xff0c;三次重复ACK后会快速重传SACK打开但是不携带SACK块信息场景下&#xff0c;三次重复ACK也不会快速重传SACK打开并且…

手机网站开发公司哪家最专业wordpress 文章数量

主要问题参考&#xff1a;http://blog.csdn.net/daven172/article/details/45769129 这篇博客。 我们进入opencv内部函数进行调试&#xff0c;主要是设置断点&#xff0c;然后按下F11键&#xff0c;VS2013编译器会自动跳转到opencv内部的函数。 如果我们进入内部的函数&#xf…

在线教育网站开发实例爱网站无法登录怎么回事

hi&#xff0c;大家好&#xff0c;今天开始我们来介绍一下对称加密算法中的AES算法。 AES简介 AES&#xff08;英语&#xff1a;Advanced Encryption Standard&#xff0c;缩写&#xff1a;AES&#xff09;&#xff0c;即高级加密标准&#xff0c;在密码学中又称Rijndael加密…

在线教学网站建设个人博客网页制作图片

ARC就是圆弧走线的意思&#xff1a; 仅打开网络的话可以只针对net进行修改走线的属性&#xff1a; 然后现在鼠标左键点那个走线&#xff0c;那个走线就会变为弧形&#xff1a; 添加差分对&#xff1a; 之后&#xff0c;分别点击两条线即可分配差分对&#xff1a; 选完差分对之后…

蛋糕公司网页设计模板网站关键词优化难不难

高考中&#xff0c;向量小题常从以下几个方面来考查&#xff1a;1、平面向量的有关概念与平面向量的线性运算&#xff0c;主要考查向量的加法、减法运算&#xff0c;考查向量的数乘运算及其几何意义。2、考查平面向量的坐标&#xff1a;主要考查平面向量基本定理及其意义&#…

wordpress 站群模板wordpress插件有api吗

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

网站推广策划的流程深圳招聘官网

Spock是一个Java测试框架&#xff0c;由GradleWare的软件工程师Peter Niederwieser于2008年创建&#xff0c;它可以促进BDD的发展。 利用这个 例如 &#xff0c;一个故事可以定义为&#xff1a; Story: Returns go to stockAs a store owner In order to keep track of stock…

广州制作网站seowordpress 页面评论 调用

引言 随着互联网的发展和智能设备的普及&#xff0c;Web应用成为了主流的应用开发方式之一。然而&#xff0c;有些场景下仍然需要使用桌面应用来满足特定的需求。为了结合Web技术和桌面应用的优势&#xff0c;Golang提供了一种名为"WebView"的库&#xff0c;它可以帮…

机械配件东莞网站建设网站的尾页要怎么做

黑马程序员前端AJAX入门到实战全套教程&#xff0c;包含学前端框架必会的&#xff08;ajaxnode.jswebpackgit&#xff09;&#xff0c;一套全覆盖 Day1 你好,我是Qiuner. 为帮助别人少走弯路和记录自己编程学习过程而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​…

兰州网站优化seo网站开发 语音输入

文章目录 前言1 字符串类型的数据结构组成2 为什么要这么设计数据结构&#xff1f;3 为什么说字符串类型不可修改&#xff1f;4 如何实现字符串的修改&#xff1f;5 为什么字符串修改的字面量用单引号&#xff1f;6 如何判断字符串的修改新建了一个字符串&#xff1f;7 字符串的…

织梦手机网站模板每天做任务得钱的网站

2019独角兽企业重金招聘Python工程师标准>>> 续前文装好chrome后&#xff0c;yum居然用不了&#xff0c;提示错误“Basic XLib functionality test failed!” 呵呵。。。呵呵了.... 【题外话~个人真心觉得pythonseleniumchrome在linux环境下开发和使用 简直蛋疼无比…

免费建站源码无极网

2019独角兽企业重金招聘Python工程师标准>>> 这个异常有下面几种情况 1、你写的 EL 表达式有语法错误。 2、再者就是你取得变量是多级的话比如 student.address.prevince 属性model 关联有问题。 3、还有就是你取得值为空&#xff08;null&#xff09; 比如 Thymel…