Haaste: Semafori
Tehtävä
Kuvittele, että sinulla on resurssi, johon voi samanaikaisesti päästä käsiksi vain kaksi säiettä. Tehtävänäsi on luoda ohjelma, joka käyttää semaphore resurssin käytön hallintaan.
Ehdot:
- Sinulla on
Resourceluokka, jossa onuse()metodi, joka simuloi resurssin käyttöä, esimerkiksi tulostamalla viestin ja aiheuttamalla viiveen; - Sinulla on
Workerluokka, joka toteuttaaRunnable-rajapinnan; senrun()metodissa yritetään päästä käsiksi resurssiin käyttäensemaphore; SemaphoreExampleluokassa onmain()metodi, joka alustaasemaphorekahdelle säikeelle sekä useita työntekijä-säikeitä, jotka yrittävät käyttää resurssia;- Varmista, että enintään kaksi säiettä voi käyttää resurssia samanaikaisesti.
Älä muuta mitään! Sinun tarvitsee toteuttaa vain run()-metodi Worker-luokassa sekä toteuttaa logiikka use()-metodissa Resource-luokassa.
Miten ohjelman tulisi toimia?
Sinulla on 5 säiettä, jotka haluavat suorittaa use()-metodin samanaikaisesti, mutta Semaphore-luokan avulla täytyy rajoittaa samanaikainen suoritus 2 säikeeseen. Heti kun säie vapauttaa Semaphore-olion, toinen säie voi aloittaa tämän metodin suorittamisen. Tämän tilanteen havainnollistamiseksi on suositeltavaa lisätä viive use()-metodiin.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.33
Haaste: Semafori
Pyyhkäise näyttääksesi valikon
Tehtävä
Kuvittele, että sinulla on resurssi, johon voi samanaikaisesti päästä käsiksi vain kaksi säiettä. Tehtävänäsi on luoda ohjelma, joka käyttää semaphore resurssin käytön hallintaan.
Ehdot:
- Sinulla on
Resourceluokka, jossa onuse()metodi, joka simuloi resurssin käyttöä, esimerkiksi tulostamalla viestin ja aiheuttamalla viiveen; - Sinulla on
Workerluokka, joka toteuttaaRunnable-rajapinnan; senrun()metodissa yritetään päästä käsiksi resurssiin käyttäensemaphore; SemaphoreExampleluokassa onmain()metodi, joka alustaasemaphorekahdelle säikeelle sekä useita työntekijä-säikeitä, jotka yrittävät käyttää resurssia;- Varmista, että enintään kaksi säiettä voi käyttää resurssia samanaikaisesti.
Älä muuta mitään! Sinun tarvitsee toteuttaa vain run()-metodi Worker-luokassa sekä toteuttaa logiikka use()-metodissa Resource-luokassa.
Miten ohjelman tulisi toimia?
Sinulla on 5 säiettä, jotka haluavat suorittaa use()-metodin samanaikaisesti, mutta Semaphore-luokan avulla täytyy rajoittaa samanaikainen suoritus 2 säikeeseen. Heti kun säie vapauttaa Semaphore-olion, toinen säie voi aloittaa tämän metodin suorittamisen. Tämän tilanteen havainnollistamiseksi on suositeltavaa lisätä viive use()-metodiin.
Kiitos palautteestasi!