Page 115 - Nodejs 교과서 개정2판
P. 115

Worker,	isMainThread,	parentPort,
           }	=	require('worker_threads');


           if	(isMainThread)	{	//	부모일	때
           		const
           		worker	=	new	Worker(__filename);
           		worker.on('message',	message	=>	console.log('from	worker',	message));
           		worker.on('exit',	()	=>	console.log('worker	exit'));
           		worker.postMessage('ping');
           }	else	{	//	워커일	때
           		parentPort.on('message',	(value)	=>	{
           				console.log('from	parent',	value);
           				parentPort.postMessage('pong');
           				parentPort.close();
           		});
           }




         isMainThreadܳ ా೧ അ੤ ௏٘о ݫੋ झۨ٘ ӝઓী ز੘ೞ؍ यӖ झۨ٘ܳ ݫੋ झۨ٘ ژח ࠗݽ झۨ٘ۄ
         Ҋ ࠗܵפ׮ ীࢲ प೯غח૑  ইפݶ ਋ܻо ࢤࢿೠ ਕழ झۨ٘ীࢲ प೯غח૑ ҳ࠙ؾפ׮  ݫੋ झۨ٘ীࢲ

         ח new Workerܳ ా೧ അ੤ ౵ੌ __filename ਸ ਕழ झۨ٘ীࢲ प೯दఃҊ ੓णפ׮  ޛۿ അ੤ ౵ੌ੄ FMTF
         ࠗ࠙݅ ਕழ झۨ٘ীࢲ प೯ؾפ׮


         ࠗݽীࢲח ਕழ ࢤࢿ റ worker.postMessage۽ ਕழী ؘ੉ఠܳ ࠁյ ࣻ ੓णפ׮  ਕழח parentPort.on 'm
         essage') ੉߮౟ ܻझց۽ ࠗݽ۽ࠗఠ ݫद૑ܳ ߉Ҋ  parentPort.postMessage۽ ࠗݽীѱ ݫद૑ܳ ࠁշפ

         ׮  ࠗݽח worker.on('message' ۽ ݫद૑ܳ ߉णפ׮  ଵҊ۽ ݫद૑ܳ ೠ ߣ݅ ߉Ҋ र׮ݶ once('message

         ')ܳ ࢎਊೞݶ ؾפ׮

         ਕழীࢲ on ݫࢲ٘ܳ ࢎਊೡ ٸח ૒੽ ਕழܳ ઙܐ೧ঠ ೠ׮ח ੼ী ઱੄ೞࣁਃ  parentPort.close()ܳ ೞݶ

         ࠗݽ৬੄ োѾ੉ ઙܐؾפ׮  ઙܐؼ ٸח worker.on('exit')੉ प೯ؾפ׮

         पઁ۽ प೯೧ࠁݶ ׮਺җ эणפ׮

          콘솔

           $	node	worker_threads
           from	parent	ping
           from	worker	pong
           worker	exit




         ই૒ө૑ח ਕழ झۨ٘ܳ ࢎਊ೧ ࠂ੟ೠ ੘স਷ ೞ૑ ঋওणפ׮  ੉ߣীח ৈ۞ ѐ੄ ਕழ झۨ٘ী ؘ੉ఠܳ

         ֈѹࠇद׮  postMessage۽ ؘ੉ఠܳ ࠁղח ߑߨҗח ׮ܲ ߑߨੑפ׮
   110   111   112   113   114   115   116   117   118   119   120