Sumber daya bareng, konflik, akses bareng - 1

"Hai, Amigo! Aku arep ngandhani sampeyan babagan nuduhake sumber daya. Ing macem-macem benang, alamiah.

"Aku terus ngomong babagan masalah sing kedadeyan nalika nggarap macem-macem utas lan carane ngatasi. Iki ora ateges yen nggunakake benang iku ala. Utas minangka alat sing kuat banget. Nyatane, sampeyan ngidini sampeyan nggawe program luwih cepet lan malah luwih dipercaya. Luwih rumit program, luwih akeh utas lan macem-macem bagean independen.

"Memisahkan program dadi bagean independen (gandeng) banget migunani."

"Bayangake manawa program sampeyan dibagi dadi 100 utas. Nanging sampeyan mung duwe prosesor dual-inti. Iki tegese rata-rata 50 utas bakal dieksekusi ing saben inti."

"Yen sampeyan perlu kanggo nambah kinerja program, sampeyan mung tuku server dual-prosesor lan saperangan prosesor manis iku. Iki bisa njaluk sampeyan nganti 32 intine, ngasilaken 2-20 kaping ngedongkrak ing kinerja. Gumantung ing nomer. saka bagean-bagean sing bener-bener independen dipérang dadi."

"Iki minangka salah sawijining alasan kenapa Jawa dominasi ing pangembangan perusahaan. Yen perusahaan duwe program internal kompleks sing ditulis dening 20 pangembang, mula luwih murah tuku server liyane tinimbang ngganda kinerja program liwat optimasi."

"Dadi iku apa kabeh babagan."

"Nanging! Saben pangembang mutusake nggunakake utas liyane, dheweke ngrampungake siji masalah lan nggawe loro. Utas liyane lan liyane ora bakal nambah kinerja program tanpa wates."

"Kaping pisanan, program apa wae duwe karya sing ora bisa dipisahake lan mlaku kanthi sejajar ing benang sing beda-beda. Kapindho, kabeh utas dieksekusi ing prosesor sing padha. Sing luwih akeh benang sing sampeyan duwe, luwih alon saben karya.

"Lan, sing paling penting, benang kerep nggunakake obyek sing padha (biasane disebut 'sumber daya sing dienggo bareng')."

"Contone, utas pengin nyimpen informasi babagan karya sing wis rampung ing file. Yen ana sawetara utas kasebut lan pengin nulis informasi menyang file sing padha, bakal saling ngganggu. Kanggo nyegah file kasebut dadi file sing padha. kekacoan jumbled, akses menyang file diwatesi, ie nalika siji thread nggunakake file, liyane ngenteni."

"Ya, aku elinga. Sampeyan nindakake iku nggunakake tembung kunci sing disinkronake ."

"Pancen bener."

"Lan kepiye yen benang nulis menyang file sing beda?"

"Secara resmi, iki minangka obyek sing beda, nanging bisa uga ana ing hard drive sing padha."

"Dadi, iku pancene bisa kanggo parallelize soko nang prosesor?"

"Secara teknis, ya, nanging sanalika thread sampeyan butuh apa-apa saliyane data sing diduweni, bisa uga ana sing wis dikuwasani dening thread liyane-lan thread sampeyan kudu ngenteni."

"Lha, apa sing kudu daklakoni? Kepiye carane aku ngerti yen aku kudu nggawe benang akeh utawa ora?"

"Iki ditemtokake langsung dening arsitektur program sampeyan. Saben proyek duwe 'arsitek' dhewe sing ngerti kabeh 'sumber daya' sing digunakake ing program kasebut, ngerti watesane, lan kepiye paralel.

"Lan yen aku ora ngerti?"

"Ana rong pilihan:"

a) kerja ing sangisore pengawasan wong sing nindakake

b) njaluk sawetara lumps tokoh metu ing dhewe

"Aku robot: Aku ora njaluk gumpalan-mung penyok."

"Inggih, banjur njaluk sawetara penyok."

"Aku weruh. Thanks. Sampeyan njlentrehake sawetara bab sing aku wis wiwit wonder bab."