易语言吧

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2999|回复: 5

[经验分享] 什么是进程?什么是线程?

[复制链接]

295

主题

537

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
14490

幽默大师终生成就

威望
0
易币
13868
贡献
0
积分
14490
UID
580
在线时间
464 小时
注册时间
2019-12-5
发表于 2020-4-8 10:02:53 | 显示全部楼层 |阅读模式
我们每次打开软件运行,操作系统的任务管理器里就会显示这个新的进程。当我们把这个进程结束之后,对应的软件也就挂了。被你结束掉的东西就是一个进程,是程序的实体,
是操作系统进行资源分配和调度的基本单位,是线程的容器。
线程是程序执行流的最小单元。
windows操作系统创建进程以后,同时会创建一个线程去执行进程中的代码。通常把这个线程称为该进程的主线程(UI线程)。主线程可以创建其他线程(子线程)
通俗的讲,进程好比是公司,主线程好比是老板,子线程就是员工。
一个进程的所有线程共享虚拟地址空间、全局变量、以及该进程的操作系统资源。
一个进程中定义了一个变量,把地址传过去,另外一个进程是不能用的。所以在数据交互上,多线程的通信,就没有进程间通信那么复杂了。
当进程被终止时,主线程同时也被终止,当主线程消亡时,其子线程同时也消亡。
什么是多线程?
多条线程同时执行代码。可以是执行相同的代码块,也可以是不同的线程执行各不相同的代码块。这些都是多线程。我们最常用的是多个线程去执行相同的代码块,但是传入的参数不同,也就是处理的数据不同。
CPU四核八线程的意义?
操作系统中运行的线程数量是远远大于CPU的线程数的。其实对于单核CPU本身只有一个核心,同时只能执行一条指令。CPU是在做着高速切换,只是速度很快,你感觉就像是一起进行的。这种CPU只能实现宏观上的并行,微观上一定是串行的。这就好比我一节课同时讲两个网站,但是在某一时刻,我只能在操作一个网站,不然讲不过来。两个老师一起讲,那就不一样了。这就是多核CPU,真正实现微观上并行。
什么是界面假死?为什么会假死?
主线程一般是用来处理窗口消息、响应事件等。当主线程下有大量耗时的代码运行时,主线程无法处理窗口消息,程序界面就会假死。启动线程()可以解决这个问题,循环体中也可以用:处理事件()
延迟、延时、高精度等待和程序_延时的区别
1、延时:易语言自带延时会导致界面假死。如果用在循环体中,一般和处理事件配合,防止界面假死。
2、延迟:易语言自带延迟不引起界面假死,但是很占CPU
3、高精度等待和模块的程序_延时都还不错,一般就用这两个。
易语言多线程支持库
一、启动线程
1、勾选易语言官方自带多线程支持库
2、当在主线程中处理大量耗时操作时,主线程就没法处理窗口消息,这时候你的界面就会处于未响应状态,也就是假死。把耗时操作放到新启动的子线程里去,主线程可以继续处理窗口消息,可以防止界面假死。
3、这时候子程序不是在主线程中运行,而是在新线程中执行,和主线程互不相关
4、线程句柄
二、关闭线程句柄
关闭线程句柄,顾名思议,是把线程句柄给关闭掉,而不是把线程给关闭掉,这点要分清楚!关闭线程句柄,是为了释放系统资源。关闭了线程句柄的线程能继续执行,但是没了句柄我们已经不能对这条线程进行控制了。
三、多线程特点
1、启动线程(&子程序)和子程序()的区别
启动线程(&子程序)不等待函数返回,子程序()会等待函数执行完毕后再继续往下执行。
2、练习:如何让程序同时弹出四个信息框?
                                 批量计算
四、等待线程
五、强制结束线程
多线程传参
启动线程这个命令只能传递一个参数,并且必须是整数型。但是这个整数你可以是确切的整数数字,也可以是超级列表框表项索引,也可以是数组下标,还可以是一个指针。
1、打开内存文件
2、超级列表框
3、自定义数据类型数组
4、队列
标签反馈事件
利用标签反馈事件,把要操作组件的代码丢给主线程处理
多线程之控制线程数
云外线程池计次换IP
许可证
创建进入许可证
进入许可区
退出许可区
多个许可证的问题
线程安全
1存钱
2、售票
3、自定义数据类型读写
4、数组增删读写
你要么事先定义好数组(加入好成员到数组),然后在多线程里可以放心操作。  真要是想一边多线程读写,一边增删数组成员,那在所有数组操作的地方加许可证。
易语言类模块
常用模块命令
原子_递增()
线程_创建()                       
鱼刺类_线程操作
线程.创建()                使用注意点
鱼刺类_线程池Ex
线程池.暂停()
线程池.销毁()
线程池.创建()
线程池._空闲线程数()
线程池.投递任务()
线程池.等待任务动态()
线程池._状态()
线程池._是否空闲()
鱼刺类_队列
队列.取队列长度()
队列.压入文本()
队列.弹出文本()
队列.清空()
鱼刺类_临界许可
许可证.进入()
许可证.退出()
鱼刺线程池计次换IP
鱼刺线程池一号一代理
多线程注意点
1、明确哪些代码是多线程运行代码
2、明确哪些是共享数据(公共资源)
公共资源:全局变量、程序集变量、静态局部变量、组件、本地文件
私有资源:子程序参数、普通局部变量
3明确哪些代码是操作共享数据的
a) 操作组件和本地文件都加许可证
b) 全局变量、程序集变量、静态变量只读取可不加
c) 全局变量、程序集变量、静态变量有读有写,读写都要加许可证
d) 超级列表框不同时操作同一格,可不加
4、明确哪些代码要用相同的许可证
5、要考虑打码接码平台的限制,网站的限制,代理提取网站的限制等

0

主题

21

帖子

33

积分

初识易语言

Rank: 1

积分
33
威望
0
易币
12
贡献
0
积分
33
UID
3456
在线时间
1 小时
注册时间
2020-4-5
发表于 2020-4-28 14:34:09 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

27

帖子

46

积分

初识易语言

Rank: 1

积分
46
威望
0
易币
19
贡献
0
积分
46
UID
6463
在线时间
4 小时
注册时间
2020-5-30
发表于 2020-5-30 14:24:54 | 显示全部楼层
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

0

主题

10

帖子

26

积分

初识易语言

Rank: 1

积分
26
威望
0
易币
16
贡献
0
积分
26
UID
10099
在线时间
3 小时
注册时间
2020-11-1
发表于 2020-11-21 13:51:39 | 显示全部楼层

这东西我收了!谢谢楼主!易语言吧真好!
回复

使用道具 举报

0

主题

22

帖子

118

积分

VIP超级贵宾

Rank: 8Rank: 8

积分
118
QQ
威望
0
易币
96
贡献
0
积分
118
UID
13152
在线时间
8 小时
注册时间
2021-3-10
发表于 2021-3-10 15:15:24 | 显示全部楼层
学习一下
回复

使用道具 举报

0

主题

2339

帖子

9564

积分

VIP超级贵宾

Rank: 8Rank: 8

积分
9564
威望
198
易币
6829
贡献
0
积分
9564
UID
11903
在线时间
36 小时
注册时间
2021-1-23
发表于 2021-5-29 00:23:57 | 显示全部楼层
楼主发贴辛苦了,谢谢楼主分享!我觉得易语言吧是注册对了!
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【选择右侧内容,快速回复】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大漠插件注册码无须等1-3号

QQ|一:站内所有资源均来自互联网收集或用户上传分享,本站不拥有此类资源的版权。 作为网络服务提供者,对转载行为的发生不具备充分的监控能力。但是当版权拥有者提出侵权并出示充分的版权证明材料时,易语言吧负有移除转载作品以及停止继续传播的义务。在满足前款条件下采取移除等相应措施后不为此向原发布人承担违约责任,包括不承担因侵权不成立而给原发布人带来损害的赔偿责任。 用户免费分享产生,如果侵犯了你的权益,联系QQ:3066137757|Archiver|手机版|小黑屋|易语言吧

GMT+8, 2024-11-21 21:30 , Processed in 0.209661 second(s), 35 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表