感觉我的C++及面向对象学到一定的瓶颈了,需要项目来验证

Morgan_ 发布于 2015/03/16 20:08
阅读 602
收藏 1

对于C++和面向对象程序设计,及多线程,多进程学到了一个瓶颈,需要项目来具体体现!平时工作中只涉及到MFC,无法把所学到的各方面的东西具体应用,在此征集项目和需求来练练手,只收一块钱!

项目可以关于:

MFC应用程序设计;

软件架构设计,需求分析,系统设计等;

多线程程序设计;

具体行业不限,只要是涉及以上技术,且用C++开发即可。

加载中
0
半叶森
半叶森
作为一个程序猿,面向对象的瓶颈就是木有对象...
Morgan_
Morgan_
作为一个“jian”客,最高境界就是“人jian合一“
0
NickWilde
NickWilde
做个游戏呗,UE4刚刚免费。这么个超级框架足够你提升数倍等级了。
Morgan_
Morgan_
十分感谢
0
jQer
jQer
你可以先写个吃豆人
0
songtzu
songtzu

写一个IM服务器框架试试。。。。


0
朱宏青
朱宏青
写一个IM服务器开源给我们楸楸
0
书生123
书生123
自己也是,现在在准备用C写一个网络库,提升程序员个人品牌和逼格ing。
0
中山野鬼
中山野鬼

哈,没有业务背景,我实在不知道楼主都面向了什么对象。有业务背景,别说c++,就是汇编也要面向对象的分析后才能设计。概念化和对象化是人类思维和表述的特性方式。

楼主说多进程学会了。我提个设计要求,看是否可以实现。

假设存在3个模块和一个进程管理模块,一个模块负责网络接受/发送数据,也即网络模块,一个模块负责纯粹的计算工作,也即计算模块,一个模块负责从磁盘或关系型数据库等可持续存储数据的设备中更新数据,也即设备管理模块。

3个模块之间是通过任务来推动的。3个模块之间的传递通过共享空间来实现。3个模块均可包含不同数量的进程,但所有进程都被只有一个进程的“进程管理模块”进行维护(最简单的维护工作就是进程存在需要在维护表-进程注册表中注册,进程退出或超时无响应-通过定期在执行共享空间刷新数据实现,则将该进程从注册表中清除)。

计算模块如果发现任务在排队,则创建新的进程,执行任务,处理完的数据要么打回“网络模块”,要么打给“设备管理模块”。

其实你可以从简单的做起,三个模块,都只有一个进程。反正任务排队就是了。三个模块分别控制各自的资源,所以也不存在资源冲突。只要任务之间是完全无关的。

这种玩意,我现在就在带着做设计。无非比较难的在于,cpu有12个核,则固定创建10个计算模块的进程。但有些任务需要等待,每个计算模块的进程,可以执行某个任务中的一部分计算工作,当需要资源等待则再丢回任务队列,自己去争抢其他新的任务。此时就存在一个问题,计算任务的分解切割问题,以保证一个计算任务,实际被多个不同的计算模块的进程依次处理,仍然正确。因为具体某个任务,并不和某个计算进程绑定,这样才能最大化的发挥cpu多核优势,同时简化系统内部进程组织的复杂度。


wharf_zhang
wharf_zhang
[13],[81]
中山野鬼
中山野鬼
回复 @Morgan_ : c++更注重出论文,而不是业务本身。哈。
中山野鬼
中山野鬼
回复 @wharf_zhang : 多元异构数据集成平台,简单说就是数据中心,如何把不同信息化系统进行互联互通。哈。
daimen
daimen
回复 @wharf_zhang : 分布式编译?
下一页
0
zn123
zn123

引用来自“中山野鬼”的评论

哈,没有业务背景,我实在不知道楼主都面向了什么对象。有业务背景,别说c++,就是汇编也要面向对象的分析后才能设计。概念化和对象化是人类思维和表述的特性方式。

楼主说多进程学会了。我提个设计要求,看是否可以实现。

假设存在3个模块和一个进程管理模块,一个模块负责网络接受/发送数据,也即网络模块,一个模块负责纯粹的计算工作,也即计算模块,一个模块负责从磁盘或关系型数据库等可持续存储数据的设备中更新数据,也即设备管理模块。

3个模块之间是通过任务来推动的。3个模块之间的传递通过共享空间来实现。3个模块均可包含不同数量的进程,但所有进程都被只有一个进程的“进程管理模块”进行维护(最简单的维护工作就是进程存在需要在维护表-进程注册表中注册,进程退出或超时无响应-通过定期在执行共享空间刷新数据实现,则将该进程从注册表中清除)。

计算模块如果发现任务在排队,则创建新的进程,执行任务,处理完的数据要么打回“网络模块”,要么打给“设备管理模块”。

其实你可以从简单的做起,三个模块,都只有一个进程。反正任务排队就是了。三个模块分别控制各自的资源,所以也不存在资源冲突。只要任务之间是完全无关的。

这种玩意,我现在就在带着做设计。无非比较难的在于,cpu有12个核,则固定创建10个计算模块的进程。但有些任务需要等待,每个计算模块的进程,可以执行某个任务中的一部分计算工作,当需要资源等待则再丢回任务队列,自己去争抢其他新的任务。此时就存在一个问题,计算任务的分解切割问题。


你这个设计思路 太依赖window了

应该考虑跨平台,做个跨平台的 p2pserver 吧

0
中山野鬼
中山野鬼

引用来自“中山野鬼”的评论

哈,没有业务背景,我实在不知道楼主都面向了什么对象。有业务背景,别说c++,就是汇编也要面向对象的分析后才能设计。概念化和对象化是人类思维和表述的特性方式。

楼主说多进程学会了。我提个设计要求,看是否可以实现。

假设存在3个模块和一个进程管理模块,一个模块负责网络接受/发送数据,也即网络模块,一个模块负责纯粹的计算工作,也即计算模块,一个模块负责从磁盘或关系型数据库等可持续存储数据的设备中更新数据,也即设备管理模块。

3个模块之间是通过任务来推动的。3个模块之间的传递通过共享空间来实现。3个模块均可包含不同数量的进程,但所有进程都被只有一个进程的“进程管理模块”进行维护(最简单的维护工作就是进程存在需要在维护表-进程注册表中注册,进程退出或超时无响应-通过定期在执行共享空间刷新数据实现,则将该进程从注册表中清除)。

计算模块如果发现任务在排队,则创建新的进程,执行任务,处理完的数据要么打回“网络模块”,要么打给“设备管理模块”。

其实你可以从简单的做起,三个模块,都只有一个进程。反正任务排队就是了。三个模块分别控制各自的资源,所以也不存在资源冲突。只要任务之间是完全无关的。

这种玩意,我现在就在带着做设计。无非比较难的在于,cpu有12个核,则固定创建10个计算模块的进程。但有些任务需要等待,每个计算模块的进程,可以执行某个任务中的一部分计算工作,当需要资源等待则再丢回任务队列,自己去争抢其他新的任务。此时就存在一个问题,计算任务的分解切割问题。


引用来自“zn123”的评论

你这个设计思路 太依赖window了

应该考虑跨平台,做个跨平台的 p2pserver 吧

不好意思,我不在windows上开发哦。c语言在windows上开发就毛病了。哈。
0
776
776
有个项目愿意挑战不?已经给你私信留方式   加后详聊
返回顶部
顶部