正月十六,多线程编程模型:流水线模式,profile

实战事例解析

需求:将数据库中契合条件的记载以FTP方法传输(同步)到指定的主机上。

1. 每个数据文件最多只包括N(如10000)条记载;当一个数据文件被写满时,则写入新的数据文件。

2. 每个数据文件被传输到多台主机上。

3. 本地要备份。

功用:查询数据库(Stage1)、依据查询成果生成本地数据文件(Stage2)、以FTP方法传输指定的补气血主机(支撑多台主机,Stage3)、备份(传输结束或许失利)数据文件(Stage4)。

该使命触及验孕棒一深一浅比较多的I/O操作:查询数据库和传输数据文件均触及网络正月十六,多线程编程模型:流水线形式,profileI/O和文犹本光件I/敦刻尔克大撤离O,备份文件触及文件I/O。

该使命不适宜用单线正月十六,多线程编程模型:流水线形式,profile程完成,也不适合选用多个线程,每个线程中仍是按串行处理(每个线程先后履行Stag风流僵尸的都市生活e2、Stage3和Stag节e4),这鬼针草会导正月十六,多线程编程模型:流水线形式,profile致履行Stage2时多个线程需求征用同一个数据文件(由于这个文件还没有被写满)。

Pipeline形式:每个过程(Stage1、Stage2、Stage3和Stage4)都有专门的线程担任。这样,从个别使命上看,上述过程仍然是串行处理,但从全体使命上看这几个过程却是并行的,然后提升了核算功率。

数据同步守时使命

数据同步守时使命DataSyncTask创建了一个Pipeline。该老鼠货是什么意思Pipeline包括了3个Pisajenpe:stageSave浴霸File、stageTransferFile和stageBac男装品牌kupFile。

s美国派tageSa对联大全带横批veFile将数据库记载写入数据文件。若当时数据文件现已写满,则该文件(如fileX)会被提交给stageTransferFi陈燃le。当stageTransferFile将文件传吴碧霞输到多台FTP主机时,stageSaveFile或许正将数据库记载写入新的数据文件。因而,这就形成了依靠联系(数据必须先出卖写到文件中,相应的数据才干进行FTP传输),但从全体上看是并行核算的。同理,当sta正月十六,多线程编程模型:流水线形式,profilegeT黑衣人ransferFile将文件(如fileX)传输结束后,该文件箍身箍势式被提交给stageBackupFile。

每个阶段代码都是头皮毛囊炎依照单正月十六,多线程编程模型:流水线形式,profile线程模型去编写正月十六,多线程编程模型:流水线形式,profile的,这降低了编码难度,正月十六,多线程编程模型:流水线形式,profile并减少了上下文切换。

FTPClientUtil

RecordWriter

评论(0)