ACG Game Developing: Thread part1初体验

FBI WARNING: 博客主是小白 内容时常有误 请各位在发现错误后及时反馈!!! 且内容涉嫌xx,xx
系统:Linux 和 Android
语言:C++

什么是线程
In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system.wiki娘
也就是说,线程就是分开来执行任务的东西。

例子1
1)当你用双手在键盘上编程时, 你可以听会儿Music, 或是喝口咖啡。(当心翻了!)
2)这些事情都有条不紊地进行着,你并不会感到累, 但如果你要写完10000行的代码再去喝水的话, 那你已经……
第2种我称为脑袋死机 而第1种则是 并行处理 wiki娘

线程就属于并行处理。等下,这里有两个东西,线程(thread)和进程(process)
或许在翻译上,我们可以把这两种东西混淆在一起,但它们是不同的(即使有相似的地方)。UNIX/Linux下 运行的程序叫作进程(process), 她们之间是不共享内存的。但在更早的时候,他们之间是共享的,这使得程序之间的关系很复杂。于是人们开始简化,于是诞生了线程(thread).

例子2
你和2位朋友成立游戏社开发游戏,你编程,1位是画师,1位是音乐制作人,但不幸的,你们只有一台笔记本,于是你们就只能分工合作,美工朋友先按照计划制作贴图,你和另一位朋友干着其他事情,等美工做完一部分时,美工朋友便将你拉过去,于是你开始写代码,写了一部分代码,你又请求音乐制作人制作bgm,当bgm试作完成,又需要喊你敲键盘。
这里 游戏社可以看为是一个程序
你和2位朋友便是线程
电脑和里面的资源便是共享内存(令牌token或是互斥量mutex)
而”拉你,请求她,喊你”则是类似信号的动作
是不是有些清楚了(博客主厚颜无耻(/3/) )

一些术语

异步(想象2只动作完全不受控的脚)
(Asynchronous adj.)
example:鼻赛时上厕所的同时吃饭(两个事情之间互不相干) 程序并发完成任务
如果你不需要同时做事来完成目的 那异步没什么好处 甚至会让你更烦恼
ps:同步则与之相反 这里不解释了 两者都属于并发

并发(想象顺拐的长颈鹿)
(Concurrency adj.)
example:有无鼻赛都是 上厕所的同时吃饭

并行(需要多核处理器,干2次)
(parallelism adj.)
example:左手和右手同时写相同的字

以上便是Thread的初体验,很少。较多的下一回装载中……

参考文档:
David R. Butenhof《POSIX多线程程序设计》
西尾泰和《代码之髓》
wiki娘

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值