Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
public class Main { public static void main(String[] args) { Brojac b = new Brojac(); Brojac b2 = new Brojac(); MyThread t1 = new MyThread(1, b); MyThread t2 = new MyThread(2, b2); t1.start(); t2.start(); try { t1.join(); t2.join(); } catch (InterruptedException ie) { System.out.println(ie); } System.out.println(b.getBr()); System.out.print(b2.getBr()); } } class MyThread extends Thread { private int id; Brojac b; public MyThread(int _id, Brojac _b) { id = _id; b = _b; } @Override public void run() { for(int i = 0; i < 10; ++i) { // System.out.println("Thread " + id + " " + i); b.safe_zgolemi_brojac(); // zemi ja vrednosta na b // zgolemi ja vrednosta T1, T2 // vrati ja vrednost } } } class Brojac { private static int br = 0; public static void unsafe_zgolemi_brojac() { br++; // no atomicity try { Thread.sleep(10); } catch (InterruptedException ie) { System.out.println(ie); } } public synchronized void safe_zgolemi_brojac() { br++; // atomocity } public static int getBr() { return br; } }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)