Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Aufgaben;
- import java.awt.List;
- import java.util.ArrayList;
- import java.util.Random;
- //Bitte einen Extra-Thread starten,
- //der die statische Variable `count` in einer for-Schleife 1 Mio. mal
- //um eins inkrementiert. Bitte in der main den Wert der Variable ausgeben.
- //Einen Extra-Thread starten, der eine statische Variable `count` in einer for-Schleife 1 Mio.
- //mal um eins inkrementiert. Einen weiteren Extra-Thread parallel starten,
- //der dieselbe statische Variable `count` in einer for-Schleife 1 Mio. mal um eins dekrementiert
- //(bitte parallel zu dem Inkrementer-Thread). In dem main-Thread abwarten,
- //bis die beiden Extra-Threads fertig sind,
- //und anschließend den Wert der Variable `count`ausgeben.
- public class ThreadsA3 {
- static int count;
- class MyRunnableIncrement implements Runnable {
- @Override
- public void run() {
- for (int i = 0; i < 1_000_000; i++) {
- count++;
- }
- }
- }
- class MyRunnableDecrement implements Runnable {
- @Override
- public void run() {
- for (int i = 0; i < 1_000_000; i++) {
- count--;
- }
- }
- }
- public static void main(String[] args) {
- Runnable target = new ThreadsA3().new MyRunnableIncrement();
- Thread tIncrement = new Thread(target, "tIncrement");
- tIncrement.start();
- Runnable target1 = new ThreadsA3().new MyRunnableDecrement();
- Thread tDecrement = new Thread(target1, "tDecrement");
- tDecrement.start();
- try {
- tIncrement.join();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- try {
- tDecrement.join();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- System.out.println(count);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement