欢迎来到天天文库
浏览记录
ID:51493306
大小:424.88 KB
页数:96页
时间:2020-03-25
《来自IBM的多线程编程(POSIX).pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ProfessionalGroupTec.Doc.07121901Author-万一飞多线程编程技术线程是比进程更小的单位,可以认为进程是由一个或多个线程组成的。据说以前的400版本并不支持真正的多线程技术,在4.2版后才从内核上提供了对多线程的支持。总之写这份文档的时候,绝大部分版本应该可以支持。主要资料来源于IBM信息中心的《ProgrammingMultithreadedapplications》,加上部分个人观点。多线程编程有以下几点特殊性(说好听点叫特殊性,说得直接一点完全就是为什么不使用多线程技术的理由,按理由的充分性,由小到大排列):1.多线程的编程在对C程序的使用上要特别小心,
2、详细内容见调用C程序的注意事项。2.事务处理的作用范围是JOB级,或活动作业组级。这也就是说多线程并发时,一个线程的COMMIT操作可能导致另一个线程也执行了COMMIT操作。(这是IBM说的,不是我的猜想)。所以实际上也就可以认为多线程的并发不能支持事务操作。3.对于用户的应用程序来说,大部分C、RPG、RPGLE编写的PGM和MODULE都不具备线程安全性,也就是不能被一个进程下的多个线程同时调用,要注意。(不排除是因为某些参数未掌握好,总之目前测试的结果就是如此)同时也基于此,多线程之下程序的复用性,维护性就没有单线程下那么方便和自由。4.最后,实际测试多线程的效率,只能用令人惊讶来形容
3、--和多进程并发效率居然几乎是一样的!-_-(程序写起来还麻烦得要死!)测试方法:读一个380多万条记录的文件,再根据某个键值去CHAIN另一个620多万条记录的文件,仅此而已。根据这个380多万条记录的文件的某个关键字,拆分成200多个任务,每个任务只处理自己需要处理的数据。(可以简单的认为每个任务是处理380w/210条记录吧,其实并非如此)多进程分为10个进程来处理这200多个任务,耗时约3分钟(14:40:45–14:43:59)。多线程分为8个线程来处理这200多个任务,耗时竟然也是约3分钟(14:47:03–14:50:14),严格的来说,少了3秒钟,我估计这3秒就是启动8个线程比
4、启动10个JOB要少的时间吧。我在多线程里还特地增加了共享了ODP的处理,居然还是只有这个效果。看到这里,如果对多线程技术还有兴趣的话,那就请继续往下看吧。我要早知道,也就不写这么多了。ProfessionalGroupTec.Doc.07121901Author-万一飞目录1概念...........................................................................................................................................61.1JOB.............
5、..................................................................................................................61.2Process(进程)...............................................................................................................61.3Thread(线程)..............................................
6、..................................................................61.3.1线程的分类.......................................................................................................71.3.2线程的程序模型...............................................................................................71.3.3JOB和JO
7、B资源..............................................................................................81.3.4线程的私有数据和特有数据...........................................................................81.3.5多线程编
此文档下载收益归作者所有