දන්න අය ඉන්නව නම් කියන්ඩෝ..
මේකයි වැඩේ Method 2ක් තියෙනවා. Method 2කම ඇතුලෙ එකිනෙකට වෙනස් Thread 2ක් Runnable එකක් තුල Run වෙනවා.
මම වෙන Method එකක if-else condition එකක ඉදන් මේ Thread Method එකට Call කරනවා
ඔය උඩ තියන විදියට. ඒත් ම්ට ඕනෙ if-else Condition එක තුල a==1 or 2 likewise වෙනවිට m1 හා m2 method දෙකම එකවර වෙන්න ඕනෙ. ඊට පස්සෙ while loop එක true නිසා මේක continue සිදු වෙනවා. ඒත් m1 හා m2 method වල thread එක runවෙනවිට ආයිත් m1 and m2 call වුනොත් run වෙන thread එකට බාධා නොකර holdවෙන්න ඕනෙ. q එකක තියෙන්න ඕනෙ. නමුත් දැන් තියෙන code එකේ අච්චාරුවක් වගේ run වෙනව. මට මේක හරියට synchronized කරල දෙන්නකෝ..
මේකයි වැඩේ Method 2ක් තියෙනවා. Method 2කම ඇතුලෙ එකිනෙකට වෙනස් Thread 2ක් Runnable එකක් තුල Run වෙනවා.
Code:
void m1(){
t1 = new Thread(new Runnable() {
@Override
public void run() {
Thread.sleep(1000);
//My Codes
}
});
t1.start();
}
void m2(){
t2 = new Thread(new Runnable() {
@Override
public void run() {
Thread.sleep(1000);
//My Codes
}
});
t2.start();
}
මම වෙන Method එකක if-else condition එකක ඉදන් මේ Thread Method එකට Call කරනවා
Code:
void call(){
while(true){
if(a==1){
m1("A");
m2("B");
}else if(a==1){
m1("C");
m2("D");
}else if(a==1){
m1("E");
m2("F");
}else{
m1("G");
m2("H");
}
}
}
ඔය උඩ තියන විදියට. ඒත් ම්ට ඕනෙ if-else Condition එක තුල a==1 or 2 likewise වෙනවිට m1 හා m2 method දෙකම එකවර වෙන්න ඕනෙ. ඊට පස්සෙ while loop එක true නිසා මේක continue සිදු වෙනවා. ඒත් m1 හා m2 method වල thread එක runවෙනවිට ආයිත් m1 and m2 call වුනොත් run වෙන thread එකට බාධා නොකර holdවෙන්න ඕනෙ. q එකක තියෙන්න ඕනෙ. නමුත් දැන් තියෙන code එකේ අච්චාරුවක් වගේ run වෙනව. මට මේක හරියට synchronized කරල දෙන්නකෝ..