/ Ako správne vytvoriť a implementovať triedu typu ThreadPool v jazyku Java - java, multithreading, threadpool

Ako správne vytvoriť a implementovať triedu typu ThreadPool v jazyku Java - java, multithreading, threadpool

Chcel by som vytvoriť svoju vlastnú triedu ThreadPool v jazyku Java (skúšal som to v minulosti a stále som dostával súbežné výnimky - zabudla som na konkrétnu chybu) a vrátim sa znova.

To by sa používalo za behu, ľahko vytvoriťrôzne vlákna na spustenie rôznych procesov súbežne a potom, keď úloha skončí vo vlákne, do ktorej bol prenesený, bude recyklovaný a opätovne použitý na iný účel. Toto je pre 2-dňový herný engine v jazyku Java, ktorý som sám kódoval.

To by sa používalo pre veci ako zrážka, zvuk, riadenie animácie, načasovanie, ovládacie prvky atď. Toto sú len možnosti z toho dôvodu, že potrebujem triedu ThreadPool.

problém: Poslednýkrát som to skúsil, vytvoril som triedu ThreadPool, ktorá mala pole typu "AudioThread" (alebo niečo podobné), ktoré bolo vnútornou triedou, ktorá previedla metódu "run". Pri vytváraní triedy ThreadPool by som prešiel niekoľkými vláknami, ktoré by sa mali vytvoriť a ktoré by sa uložili do poľa pre neskoršiu manipuláciu.

Potom by som sa pokúsil vytvoriť metódy ako "assignTask (TaskType ThreadTask)", "freeThread ()", getFreeThread (). atď Ale z vykonania zmien na vláknach, som dostal súbežné chyby nejakého druhu.

V spodnom riadku má niekto skúsenosti s vytváraním triedy typu ThreadPool, ktorá môže ponúkať skúsenosti čo môžem a nemôžem robiť? Návrhy na odstránenie tohto problému? Poradenstvo? Myšlienky?

Ďakujem.

odpovede:

1 pre odpoveď č. 1

Pravdepodobne budete chcieť používať ThreadPoolExecutor, Znie to, ako to robí presne to, čo chceš.