揰掵佲 发表于 2014-12-15 08:42:51

线程线程池同步异步套接字

线程线程池同步异步套接字
什么是线程,创建10个线程?创建100个线程有什么区别?
简单的说,一个线程处理一个任务,创建10个线程,就等于叫来10个人,同时做10件事一样,同理,创建100个线程,就等于叫来100个人,同时干100件事,有人可能要问,那为什么不一次性创建很多很多的线程,那样,程序处理速度不就飞快了吗? 其实这里也要考虑内存负荷,线程多了带来的线程安全问题,都是要考虑的,所以,一次创建少一点,没坏处
一般的话,我们写的程序都是单线程,程序同时只能处理一件事情。






啥是线程池?听起来好高大上啊?什么意思呢?
易语言多线程支持库好像没有线程池,至少我还没看到,但是已经有易友写了相关的线程池模块,可以调用
那线程池到底什么意思呢?其实很简单,就是实现重用线程,比如,一个银行,开通10个窗口,同时一次处理10个人的业务,然后后面人接着排队,谁先办完业务,下个人补上去
线程池的概念和这个差不多, 创建一个容纳30个线程的线程池,然后一次性添加100个线程任务进去,然后电脑每30个线程分为一批,先处理30个线程,哪个线程处理完了,后面排队的线程继续补上去






经常听人说,同步处理,异步处理,到底是个啥意思?
我刚学易语言的时候,下载了个远程控制源码, 就有人说什么屏幕异步传输什么的,文件同步传输什么的
其实也很好理解
同步的意思:比如现在程序要处理100件事情,那如果是同步的话,就一个一个来,排着队来,程序不容易出错,但是速度慢了
异步的意思:异步顾名思义吧,互不干扰,谁也不知道谁先处理完,大家各干各的。比如现在程序要处理100件事情,这100件事情同时一起干,谁先处理完,谁就撤






啥是TCP协议啊?
呵呵,听上去好像挺高大上的,但是很好理解,TCP网络协议,现在应该算主流吧,因为他不容易丢包
为什么不容易丢包呢?因为TCP每发送给别人一段数据,它都要等别人的反馈, 发一遍,问一遍,发一遍,问一遍


TCP传输流程大概是这样的:
TCP:发给对方一段数据
TCP问:你收到了?
对方:收到了!
TCP:再发下一段数据

TCP问:你收到了?
对方:没收到!
TCP说:好的,没关系,我再发一遍

TCP再问:你收到了?
对方:收到了!
TCP:好的,我再发下一段数据
......
用TCP协议的好处就是不容易丢包,但是弊端就是传输速度慢








啥是UDP协议啊?

有很长一段时间,我不知道这个UDP到底是个啥? 呵呵,其实很简单的,UDP协议一般用于视频聊天软件,游戏里面看到其他玩家移动啊,其他玩家聊天的数据,在网络间传输,基本上用的都是UDP协议, 某个玩家发了一句话,然后发到服务器,服务器再用UDP协议转发给所有的玩家, 服务器只管发,你们玩家能不能收到这条数据,服务器是不管的,就算你没收到,服务器也不会给你补发,所以,我们有时候在QQ聊天,视频卡住了,然后人又动了,中间卡住的时候就是UDP传输的时候丢包了


UDP传输流程大概是这样的:
UDP:发给对方一段数据,不管你收没收到
UDP:再接着发给对方一段数据,不管你收没收到
UDP:再接着发给对方一段数据,不管你收没收到
UDP:再接着发给对方一段数据,不管你收没收到
UDP:再接着发给对方一段数据,不管你收没收到
UDP:再接着发给对方一段数据,不管你收没收到
UDP:一直发,不管你收没收到,我只管发就行了
......
用UDP的好处就是传输速度快了,但是丢包率也上去了

北极星光 发表于 2014-12-15 09:13:59

讲得太好了,简单易懂,没有比这再通俗的了

325019289 发表于 2014-12-15 11:20:24

来看看楼主,天天好心情
(*^__^*)

最终的幻象 发表于 2014-12-16 08:48:16

优秀文章!神马都是浮云,支持!

Tyla 发表于 2014-12-15 09:18:47

这么好的资源,无条件抱走。

fengxin0007 发表于 2014-12-15 09:20:58

基础知识,好好学习下

携寒 发表于 2014-12-15 10:45:30

这么好的资源,无条件抱走。

夜の未眠 发表于 2014-12-15 15:49:27

讲的很不错

苍天静 发表于 2014-12-15 21:08:20

这么好的资源,无条件抱走。

3133841 发表于 2014-12-16 14:06:25

说的很棒,支持。
页: [1] 2
查看完整版本: 线程线程池同步异步套接字