জাভাস্ক্রিপ্ট মাল্টি থ্রেডিং


10

ভাল আজকাল জাভাস্ক্রিপ্ট সমস্ত ওয়েব ডেভলপমেন্ট প্রযুক্তির প্রধান প্লেয়ার, ব্যবহারকারী ইন্টারফেসকে আরও ভাল করার জন্য ক্লায়েন্ট সাইডে, ক্লায়েন্ট সাইড লজিক, কিছু ওয়েব সার্ভারে সার্ভার সাইড লজিক হিসাবে

যুক্ত করুন যে লোকের সত্যতা (তাদের মধ্যে কিছু কমপক্ষে) ওয়েব গেম বিকাশে ফ্ল্যাশ থেকে জাভাস্ক্রিপ্ট এবং এইচটিএমএল 5 এ যেতে শুরু করেছে

মাল্টি থ্রেডিং সমর্থন করার জন্য কি সময় নেই! ব্রাউজারগুলি কি জাভাস্ক্রিপ্টকে একাধিক থ্রেডড করতে দেয় বা এটি কোনও মান, এইচটিএমএল 5 বা ভবিষ্যতের সংস্করণগুলিতে আছে ?!


1
লোকেরা প্রয়োজনীয় জিনিসগুলি করে না। জাভাস্ক্রিপ্ট ডিজাইনে যে ব্যক্তিরা অবদান রেখেছেন, তারাও ওয়েবরভার এবং ব্রাউজারগুলির সাথে সম্পর্কিত যা বিকাশিত তাই তারা এ সম্পর্কে জানতেন। এটি সব ইউটিলিটি সম্পর্কে।
দিপান মেহতা

উত্তর:


9

একমাস্ক্রিপ্টে মাল্টি থ্রেডিং করা হবে না তবে হোস্ট পরিবেশে প্রকাশ করা যেতে পারে।

ক্লাসিক উদাহরণগুলি হ'ল ওয়েবকার্স যা আপনাকে <iframe>নতুন প্রসেসগুলিকে উত্সাহিত করার উপায় হিসাবে কোনও পটভূমি কর্মীকে কাজ করতে এবং গালাগাল করার সুযোগ দেয়।

এটি লক্ষ করা উচিত যে জাভাস্ক্রিপ্টে মাল্টি থ্রেডিংয়ের প্রয়োজন নেই (ব্যতিক্রমগুলি রয়েছে, মূলত গ্রাফিক্স সম্পর্কিত প্রোগ্রামগুলি)। আপনার একাধিক থ্রেডের দরকার নেই, আপনার জিইউআইয়ের জন্য ইতিমধ্যে আপনার একটি ইভেন্ট লুপ রয়েছে এবং আপনার গ্রাফিক্স রেন্ডারিং (ক্যানভাস) হার্ডওয়্যার এক্সিলারেটেড (মানে জিপিইউ আপনার গ্রাফিকগুলি আপনার জন্য সমান্তরালে রেন্ডার করে)।

যদিও ওয়েবক্লালের মতো প্রকল্পগুলি বেশ উত্তেজনাপূর্ণ।


2
এটি "প্রয়োজন হয় না" এই বিষয়টি নিয়ে আপনি কী প্রসারিত করতে পারেন? আমি সম্প্রতি একটি দৃষ্টান্তে দৌড়েছি যেখানে ডেস্কটপ প্রোগ্রামিংয়ের প্রাকৃতিক ক্ষেত্রে কাজটি পরিচালনা করার জন্য একটি থ্রেড উত্সাহিত করা হবে তবে এটি অবশ্যই সহজ বা মানক বিকল্প ছিল না। আমি এই কেসটি ঘিরে কাজ করেছি তবে থ্রেড তৈরি করা আরও মার্জিত সমাধান বলে মনে হচ্ছে।
রিগ

@ জিগ আপনি কি হ্যান্ডেল করার চেষ্টা করছেন?
জাচারি কে

@ রিগ একটি দৃ concrete় উদাহরণ দিন। গণনামূলকভাবে ব্যয়বহুল প্রসেসিং ক্লায়েন্ট পক্ষের জাভাস্ক্রিপ্টে বিরল
রায়নস

@ রায়নস দয়া করে কীভাবে এটির প্রয়োজন নেই সে সম্পর্কে আরও ব্যাখ্যা করুন, আমি কেবল এটি নিশ্চিত করেই ভাবছি না যে গেমের বিকাশে উদাহরণস্বরূপ গ্রাফিক্স এবং পদার্থবিজ্ঞানের উপর ভারী গণনা থাকলে এবং কোনও মাল্টিথ্রেডিং না থাকলে লজিক ফ্রেমের হার সহজেই প্রভাবিত হবে বলে আমি মনে করি
আলী

@ অলি আমি কপি করে বললাম এর ব্যতিক্রম আছে। তবে সেই ভারী
গণনাটির বেশিরভাগটি জিপিইউকে

4

কোন

ডান পাওয়ার জন্য সফ্টওয়্যারের অন্যতম কঠিন জিনিস মাল্টি থ্রেডিং। এমন অনেকগুলি কর্নার কেস রয়েছে যা আপনার কোডটি নির্বিচারবাদী না হলে সত্যিই কাজ করা শক্ত। (আমি লক ইত্যাদি সহ মাল্টি থ্রেডিংয়ের কথা বলছি)। এছাড়াও বিভিন্ন জাভাস্ক্রিপ্টের সমস্ত লাইব্রেরি এই মাল্টি থ্রেডড নয় এমন ধারণায় নির্মিত হয়েছে।

বলা হচ্ছে যে এখানে ওয়েব কর্মীরা আপনাকে মাল্টি প্রসেসিং ধরণের অপারেশন করার জন্য অভিনেতা ভিত্তিক কাঠামো দেয়। আপনি কর্মীদের তৈরি করতে এবং ইভেন্টগুলির মাধ্যমে পিছনে ডেটা পাস করতে পারেন।

সম্পাদনা: অন্য কারণটি হ'ল জাভাস্ক্রিপ্টটি তৈরি করা হয়েছিল এটি অনুমানের সাথে করা হয়েছিল যে এটি ছোট কাজগুলির জন্য ব্যবহৃত হবে, সুতরাং কোনও চুক্তি তৈরি করা হয়নি it এখন এটি পুনঃনির্মাণ করার জন্য প্রচুর কোড ভাঙবে। ওয়েব কর্মীদের যুক্ত করে কোনও সিস্টেমের পক্ষে ভাগাভাগি হওয়া কোনও স্মৃতিবিহীন স্মৃতি না থাকলেও এটি সম্ভব ছিল, তবে অভিনেতা ব্যবহার করে, একাধিক রূপকারীর একটি মডেল যা নিজেকে আরও শক্তিশালী বলে দেখিয়েছে এরলং, স্কেলা, ক্লোজারের মতো আরও কয়েকটি ভাষায় languages প্রভৃতি

(যদি আপনি বলতে না পারেন তবে আমি লক ভিত্তিক চুক্তি পছন্দ করি না)


1
Multi threading is one of the hardest things in software to get right.- আমি এই সঙ্গে অবাক! আপনি যে ব্রাউজারটি ব্যবহার করছেন, আপনার ডেস্কটপের ওএস, ওয়েব সার্ভার এই পৃষ্ঠাটি পরিবেশন করছে - আপনি প্রতিদিন যে অ্যাপ্লিকেশনটি ব্যবহার করেন এটি কার্যতঃ বহুলিপিযুক্ত। আপনি কি তা বোঝাচ্ছেন? তবুও আপনাকে হ্রাস করতে, তবে আপনি যদি বলবেনmultithreading is not done because it is hard
দিপান মেহতা

3
সঠিকভাবে পাওয়া সফ্টওয়্যারগুলির মধ্যে ডিপন মেমহ্তা মাল্টি থ্রেডিং অন্যতম কঠিন বিষয়। এই সমস্ত অ্যাপ্লিকেশনগুলি এটি ব্যবহার করার কারণ হ'ল এগুলি সত্যই প্রতিভাবান ব্যক্তিরা
রায়নস

@ রায়নোস - আমার মঙ্গল! তাই আপনি আমাকে মেধাবী বলছেন! আমি এটি প্রতিদিন ব্যবহার করি ... আমার মনে হয় আপনি যখন সি প্রোগ্রামিং বা কোনও বড় আকারের অ্যাপ্লিকেশন হন এটি বেশ সাধারণ। মুল বক্তব্যটি হ'ল ব্যবহার এবং প্রয়োজনীয়তা নির্বিশেষে ডাব্লু 3 সি কনসোর্টিয়াম এটি জাভাস্ক্রিপ্টের জন্য সত্যিই এড়াতে পারেনি কারণ এটি খুব শক্ত ছিল !
দিপান মেহতা

2
সঠিক এবং দক্ষ সমান্তরাল প্রোগ্রামগুলি লিখতে আপনার পক্ষে কঠোরভাবে বোঝানো হচ্ছে। তবে মাল্টি থ্রেডিং জাভাস্ক্রিপ্টে নেই কারণ এটির অপ্রয়োজনীয় জটিলতা (জিনিসটি 3 সপ্তাহের মধ্যে লেখা হয়েছিল)
রায়নস

2
@ দিপানমেতা লক ভিত্তিক চুক্তিটি সঠিকভাবে সম্পাদন করা এবং সমস্ত কোণার ক্ষেত্রে পেরেক দেওয়া একটি কঠিন সমস্যা। উদাহরণস্বরূপ, লকগুলির সাথে একটি সারির মতো সহজ কিছু বাস্তবায়ন যা সমস্ত ক্ষেত্রেই সঠিক প্রমাণিত হতে পারে কয়েক বছর আগে পর্যন্ত প্রকাশযোগ্য ফলাফল হতে পারে publis তবে আরও গুরুত্বপূর্ণভাবে যে ভাষাটি হয়নি এমন ভাষায় পুনঃনির্মাণের চেষ্টা করা হচ্ছে সমস্যা জিজ্ঞাসা করা।
জাচারি কে

3

মাল্টিথ্রেডিংয়ের জন্য জাভাস্ক্রিপ্ট খোলার ফলে এটি সমাধান হওয়ার চেয়ে আরও বেশি সমস্যা তৈরি করবে:

বর্তমান আর্কিটেকচারটি একক থ্রেডেড ইভেন্ট-ভিত্তিক (কোডের প্রতিটি ব্লকের সাথে গুয় থ্রেডে প্রায়শই চলছে) আপনি নিশ্চিত হতে পারবেন যে পরিবেশের কোনও কিছুই শুরু থেকে শেষ পর্যন্ত পরিবর্তিত হবে তা বাদে পরিবর্তন হবে না except কোডে

যত তাড়াতাড়ি আপনি প্রিম্পশন বা সমান্তরাল সম্পাদনের অনুমতি দেবেন এই বৈশিষ্ট্যটি চলে যাবে, এর অর্থ হল যে আপনাকে এমন ডেটাতে লকগুলি প্রয়োগ করতে হবে যা আপনি পরিবর্তন করতে চান সাথে সাথে রেস শর্তগুলি এড়াতে পুরো ডিবাগ করার জন্য কঠোরভাবে থাকতে হবে

সময়সীমা ব্যবহার করে সিউডো-প্যারালাল এক্সিকিউশন থাকা সম্ভব, এর অর্থ বড় বা দীর্ঘ চলমান ফাংশনগুলিকে পারমাণবিক খণ্ডে বিভক্ত করা এবং setTimeout(function(){nextstep(args);},1);প্রয়োজনে অন্যান্য স্টাফ চলতে পারে


0

কিছুটা আগে ইন্টেল রিভার ট্রেল প্রকাশ করেছিল যা জাভাস্ক্রিপ্টে সমান্তরাল প্রোগ্রামিং সক্ষম করে। তবে এটি একটি ফায়ারফক্স-কেবল প্লাগইন এবং আমি এমন কোনও রোডম্যাপের কথা শুনিনি যা এই প্রযুক্তিটি ডাব্লু 3 সিতে আনবে, অনেক কম ইসিএমএ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.