public class ThreadFourInner {
class InnerThread {
int j = 5;
void ThreadFour()
{
int[] a = {j};
for (int i = 0; i < 4; i++) {
if (i < 2) {
new Thread(() -> {
increate(a);
}
).start();
} else {
new Thread(() -> {
decreate(a);
}).start();
}
}
}
synchronized void increate(int[] a) {
a[0] += 1;
System.out.println("线程 " + Thread.currentThread() + ":" + a[0]);
}
synchronized void decreate(int[] a) {
a[0] -= 1;
System.out.println("线程 " + Thread.currentThread() + ":" + a[0]);
}
}
public static void main(String[] args) {
ThreadFourInner threadFourInner = new ThreadFourInner();
threadFourInner.new InnerThread().ThreadFour();
}
}
public class Solution { class InnerSolu{ int j = 5; void fun(){ int[] var = {0}; var[0] = j; for(int i=0; i< 4; i++){ int[] index = {0}; index[0] = i; if (i<2){ new Thread(() -> { var[0] = var[0] + 1; System.out.println(index[0]+" "+var[0]); }).start(); } else { new Thread(() -> { var[0] = var[0] - 1; System.out.println(index[0]+" "+var[0]); }).start(); } } } } public static void main(String[] args){ Solution solution = new Solution(); Solution.InnerSolu innerSolu = solution.new InnerSolu(); innerSolu.fun(); } }