কনকুরেন্সিতে পরবর্তী


9

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

তবে আমি নিজেই আর উত্তর দিতে অক্ষম? মাল্টি-কোর প্রসেসিং সম্পর্কিত আরও দক্ষতার উত্তরাধিকারী হওয়ার জন্য আমার কী কী অতিরিক্ত শিখতে বা কাজ করা উচিত। যদি মাল্টি-কোর প্রসেসিং সম্পর্কিত কোনও দুর্দান্ত বই ('অনুশীলনে একত্রীকরণের অনুশীলন' এবং 'জাভাতে সমবর্তী প্রোগ্রামিং' পড়ে এবং উপভোগ করা হয়) যাতে আমি পরবর্তী স্তরে যেতে পারি?


আপনি যদি তাত্ত্বিক ভিত্তিটি মিস করেছেন, তবে এখনই সেগুলি শিখুন: en.wikedia.org/wiki/Pi-calculus
এসকে-যুক্তি

উত্তর:


8

দাবি অস্বীকার - আমি কোন চুক্তি বিশেষজ্ঞ নই, তবে আমার সহ-লেখক হলেন, আমি তাকে তোতা দিচ্ছি :-)

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

এগিয়ে যাওয়া, জাভা in এ নতুন একত্রীকরণের বর্ধন রয়েছে Most সর্বাধিক লক্ষণীয়ভাবে কাঁটাচামচ / যোগদানের কাঠামো এবং নতুন অ্যাসিনক্রোনাস এনআইও API গুলি s

জাভা 8 ল্যাম্বডাস / প্যারালাল কালেকশন সহ আরও একযোগে উন্নতি প্রবর্তন করবে।

গুরুত্ব সহকারে অন্য আরেকটি বিষয় হ'ল সম্মতিযুক্ত আচরণের বিকল্প উপায়। কথায় কথায়, জাভা'র 'লক মিউটেবল অবজেক্টস' এপ্রিভ সবসময় ত্রুটি প্রবণ হয়ে থাকবে, যতই এপিআইগুলি উন্নত করা যায় না। তাই আমি জাভা দিয়ে আন্তঃব্যবহারযোগ্যতা বজায় রাখার ক্ষেত্রে সম্মতি সংক্রান্ত সমস্যাগুলি মোকাবিলার বিকল্প উপায় হিসাবে স্কালার অভিনেতা মডেল এবং ক্লোজারের এসটিএমকে দেখার পরামর্শ দিচ্ছি।

[সতর্কতা -> স্ব বিজ্ঞাপন] সুতরাং আমি স্বাভাবিকভাবেই আমাদের আসন্ন বইটি দ্য ওয়েল-গ্রাউন্ডেড জাভা ডেভেলপারকে সুপারিশ করব , যা আমি উপরে উল্লিখিত সমস্ত বিষয় জুড়ে: -)। [/ সতর্কতা]

পাছে আমি ভুলে যাব না, গ্রোভিরও অত্যন্ত প্রস্তাবিত জিপার্স লাইব রয়েছে, যদিও আমি ব্যক্তিগতভাবে এটি ব্যবহার করি নি।


হা বইয়ের জন্য অনেক ধন্যবাদ :)। আপনার কাছে কিছু অন্যান্য ভাল বই যেমন আপনার প্রস্তাবিত বই প্রাপ্তিসাধ্য এখানে (স্থানীয় সংস্করণ) India.PS নেই সুপারিশ করতে পারেন: প্র্যাকটিস মধ্যে concurrency একটি বইয়ের একটি মণি
যতীন

@ মার্তিজন, ঝরঝরে! আমি গ্রোভি এবং স্কালাকে নিয়ে কিছু সময়ের জন্য আগ্রহী ছিলাম এবং আরও জানতে এটির সাথে খেলা করতে চাই wanted আপনার বইটি কি এই ভাষাগুলিতে নতুনদের দিকে এগিয়ে যায় বা এটি পূর্ব অভিজ্ঞতা অনুমান করে?
maple_shaft

@ যতিন পুরী - আমি 'অনুশীলনে সমঝোতা' এবং 'জাভাতে সমবর্তী প্রোগ্রামিং' এর চেয়ে অন্য কোনও শিরোনাম জানি না, হেনরি ওংয়ের 'জাভা থ্রেডস' ও'রিলির শিরোনাম আছে, তবে এটিই এ সম্পর্কে।
মার্টিজন ভার্গবার্গ

@ ম্যাপল_শিফ্ট - এটি প্রাথমিকভাবে লক্ষ্য করা হচ্ছে :-)
মার্টিজ ভার্বার্গ

2

ডি প্রোগ্রামিং ল্যাঙ্গুয়েজ সমবর্তী প্রোগ্রামিংয়ের জন্য দুটি দৃষ্টান্ত সরবরাহ করে, যার উভয়টির ব্যবহার রয়েছে এবং এটি আকর্ষণীয়।

std.concurrency কোনও ডিফল্ট মেমরি ভাগ করে না দিয়ে বার্তা প্রেরণ করে। ডি-তে সমস্ত গ্লোবাল এবং স্ট্যাটিক ভেরিয়েবলগুলি ডিফল্টরূপে থ্রেড-লোকাল হয় spawnএবং sendএমন কোনও বার্তাগুলি প্রেরণের অনুমতি দেয় না যাতে পার্শ্ববর্তী পয়েন্টার ইন্ডিরেশন থাকে। সীমিত ভাগ করে নেওয়া sharedকীওয়ার্ডের মাধ্যমে প্রাপ্ত করা যেতে পারে , যা টাইপ সিস্টেমের দ্বারা অতিরিক্ত চেকিং অন্তর্ভুক্ত করে। ভাষার নিরাপদ উপভাষার বাইরে আপনি __gsharedকীওয়ার্ডটি ব্যবহার করে ক্লাসিক সি / জাভা-স্টাইলের গ্লোবাল / শেয়ার্ড ভেরিয়েবলগুলিকে জোর করতে পারেন তবে রেস সুরক্ষা হিসাবে সমস্ত বেট বন্ধ রয়েছে। এই মডেলটি আন্দ্রেই আলেকজান্দ্রেসুর "দ্য ডি প্রোগ্রামিং ল্যাঙ্গুয়েজ" বইয়ের একটি বিনামূল্যে অধ্যায়ে বিশদ দেওয়া হয়েছে

std.paalalism কম নিরাপদ তবে কিছু উপায়ে std.concurrency এর চেয়ে আরও নমনীয় এবং সাধারণ-ক্ষেত্রে একযোগের চেয়ে ডেটা প্রসেসিং থ্রুটপুট বাড়ানোর জন্য মাল্টিকোরের ডেটা এবং টাস্কের সমান্তরালতার দিকে বিশেষভাবে তাত্পর্যপূর্ণ। এটি একটি সমান্তরাল ফোরচ লুপ, অ্যাসিনক্রোনাস ফাংশন কল, সমান্তরাল হ্রাস ইত্যাদি বৈশিষ্ট্যযুক্ত এটি রেস-নিরাপদ কোড লেখার পক্ষে আরও সহজ করার জন্য এমন ব্যবস্থা দেয় তবে এটি করার জন্য এখনও কিছুটা শৃঙ্খলার প্রয়োজন।

ডি-তে দুটি বড় মাল্টিথ্রেডিং প্যারাডিজম সম্পর্কে আরও বিশদ আলোচনা আমার বিষয়টির সাম্প্রতিক নিবন্ধে পাওয়া যাবে


2

আমি আপনাকে দৃ strongly়ভাবে পরামর্শ দিচ্ছি যে আপনি গিয়ে ক্লোজুরে একবার দেখুন

সম্মতিতে যাওয়ার পদ্ধতির বিষয়টি খুব উপন্যাস, এবং জাভা এবং বেশিরভাগ অন্যান্য ভাষায় আপনি কী দেখেন সে সম্পর্কে আমার দৃষ্টিতে একটি উল্লেখযোগ্য অগ্রিম। কিছু মূল বিষয়:

  • পরিচয় এবং রাষ্ট্র পৃথক করা হয় - ওওপি পরিবর্তিত সদস্য ভেরিয়েবলের আকারে এটির বর্তমান অবস্থার সাথে অবজেক্টের পরিচয় সংগ্রহ করে। ক্লোজারটি এমনভাবে পরিচয় (পরিচালিত রেফারেন্স) এবং রাষ্ট্রকে (অপরিবর্তনীয় ডেটা স্ট্রাকচারগুলি) কঠোরভাবে পৃথক করে যাতে নির্ভরযোগ্য নির্ভরযোগ্য প্রোগ্রামগুলির বিকাশকে সহজতর করে তোলে।
  • অবিচলিত পরিবর্তনযোগ্য ডেটা স্ট্রাকচার - কারণ সবকিছু অপরিবর্তনীয়, আপনি যে কোনও সময় ডেটা / স্টেটের স্ন্যাপশট নিতে পারেন এবং নিশ্চিত হন যে এটি আপনার নীচে রূপান্তরিত হবে না। তবে এর থেকে আরও ভাল - তারা ধ্রুব ডেটা স্ট্রাকচার যা পূর্ববর্তী সংস্করণগুলির সাথে ডেটা ভাগ করে। ফলস্বরূপ, অপারেশনগুলি অপরিবর্তনীয় ডেটার জন্য অনুলিপি-র লিখিত কৌশলটির জন্য ও (এন) এর চেয়ে ও (1) এর চেয়ে বেশি নিকটবর্তী হয় pay
  • সফ্টওয়্যার লেনদেনের মেমরি - লকগুলি ব্যবহার না করে আপনি কেবল একটি (ডোসেনসি ...) ব্লকে কোড বন্ধ করেন এবং সেগুলি স্বয়ংক্রিয়ভাবে লেনদেন হিসাবে চালিত হয়। ডেডলকের ঝুঁকি নেই এবং জটিল লক করার কৌশল বিকাশের দরকার নেই। এটি একটি বিশাল জয়, বিশেষত যখন উপরের অপরিবর্তনীয় ডেটা কাঠামোর সাথে মিলিত হয়। কার্যকরভাবে, ক্লোজুর তার এসটিএম -এ একাধিক সংস্করণ সম্মতি নিয়ন্ত্রণ প্রয়োগ করে ।
  • কার্যকরী প্রোগ্রামিং দৃষ্টান্তটি নির্ভরযোগ্য সমকালীন কোড লেখার পক্ষে আরও সহজ করার জন্য ব্যবহৃত হয়। মূলত যদি আপনি একটি অপরিবর্তনীয় ডেটা কাঠামো গ্রহণ করেন, এটি একটি খাঁটি ফাংশন দিয়ে চালান এবং কোনও ভিন্ন অপরিবর্তনীয় ডেটা কাঠামো আউটপুট দেয় তবে আপনার কোডটি সম্মতিযুক্ত হওয়ার জন্য সুরক্ষিত হওয়ার নিশ্চয়তা রয়েছে।

আমি এই ভিডিওটি একটি ভূমিকা হিসাবে দেখার পরামর্শ দিই


1

স্কালা ভাষাটি দেখুন, যা জাভা প্রসারিত করে এবং JVM- এ চলে। এটি এরলং থেকে "অভিনেতা" ধারণাটি ধার করে এবং একযোগে ব্যর্থতাগুলি পরিচালনা করার জন্য ভাল ক্ষমতা দেয়।


1

আপনি যদি একে পুরো নতুন স্তরে নিয়ে যেতে চান তবে আপনি CUDA এর সাথে প্রোগ্রামিংটি সন্ধান করতে পারেন ।

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


@ চিরন - সত্যি বলতে কী, আমি অবাক হয়েছিলাম যে এর আগে অন্য কেউ উল্লেখ করেনি।
মার্ক বুথ

1

জেভিএম-তে প্রোগ্রামিং কনক্যুরঞ্জি: মাস্টারিং সিঙ্ক্রোনাইজেশন, এসটিএম, এবং অভিনেতা স্কালা, ক্লোজার, জেউবি এবং গ্রোভির একযোগে প্রোগ্রামিং নিয়ে আলোচনা করেছেন।
সম্মতি জন্য আপনি বিভিন্ন পদ্ধতির একটি দুর্দান্ত দৃ understanding় ধারণা পাবেন।

আপনার হাসি কোথায়?

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