This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
java:synchronized_methods_blocks [2017/03/19 18:47] gthanos [Συγχρονισμένα Βlocks] |
java:synchronized_methods_blocks [2018/03/08 11:59] gthanos [Συγχρονισμένα Βlocks] |
||
|---|---|---|---|
| Line 30: | Line 30: | ||
| Αν έχουμε ένα αντικείμενο //counter// της παραπάνω κλάσης τότε ισχύουν τα παρακάτω | Αν έχουμε ένα αντικείμενο //counter// της παραπάνω κλάσης τότε ισχύουν τα παρακάτω | ||
| - | * Δεν είναι δυνατόν | + | * Δεν είναι δυνατόν |
| ===== Συγχρονισμένα Βlocks ===== | ===== Συγχρονισμένα Βlocks ===== | ||
| Line 56: | Line 56: | ||
| public void inc1() { | public void inc1() { | ||
| synchronized(lock1) { | synchronized(lock1) { | ||
| - | | + | |
| + | | ||
| + | ; | ||
| + | | ||
| + | } | ||
| } | } | ||
| } | } | ||
| Line 62: | Line 66: | ||
| public void inc2() { | public void inc2() { | ||
| synchronized(lock2) { | synchronized(lock2) { | ||
| - | | + | |
| + | | ||
| + | ; | ||
| + | | ||
| + | } | ||
| } | } | ||
| } | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <WRAP important 80% round center> | ||
| + | Στο παραπάνω παράδειγμα, | ||
| + | </ | ||
| + | |||
| + | <code java SyncBlockThread.java> | ||
| + | public class SyncBlockThread extends Thread { | ||
| + | SyncBlock block; | ||
| + | boolean counter1; | ||
| + | public SyncBlockThread(SyncBlock block, boolean counter1) { | ||
| + | this.block = block; | ||
| + | this.counter1 = counter1; | ||
| + | } | ||
| + | | ||
| + | public void run() { | ||
| + | if(counter1) | ||
| + | block.inc1(); | ||
| + | else | ||
| + | block.inc2(); | ||
| + | } | ||
| + | | ||
| + | public static void main(String []args) { | ||
| + | SyncBlock block = new SyncBlock(); | ||
| + | new SyncBlockThread(block, | ||
| + | new SyncBlockThread(block, | ||
| + | } | ||
| } | } | ||
| </ | </ | ||