我的这个程序 JAVA 同步锁在哪加

class Task1 implements Runnable {

    @Override
      public  void run() {

            ContentValues cv1 = new ContentValues();
            cv1.put("name", "李");
            cv1.put("age", 17);
            db.insert("person", null, cv1);

    }
      }
class Task2 implements Runnable {

    @Override
    public void run() {

            ContentValues cv1 = new ContentValues();
            cv1.put("name", "张");
            cv1.put("age", 18);

            ContentValues cv2 = new ContentValues();
            cv2.put("name", "孙");
            cv2.put("age", 25);
            for (int i = 0; i < 10; i++) {
                db.insert("person", null, cv1);
                db.insert("person", null, cv2);
            }
    }
}
class Task3 implements Runnable {

    @Override
    public void run() {

            ContentValues cv1 = new ContentValues();
            cv1.put("name", "王");
            cv1.put("age", 22);
            ContentValues cv2 = new ContentValues();
            cv2.put("name", "赵");
            cv2.put("age", 80);
            ContentValues cv3 = new ContentValues();
            cv3.put("name", "jesse");
            cv3.put("age", 99);
            for (int i = 0; i < 10; i++) {
                db.insert("person", null, cv1);
                db.insert("person", null, cv2);
                db.insert("person", null, cv3);
            }
    }
}

想让这三个方法同步用synchronized 同步 要在哪里修改 怎么改呢?

你可以将db作为全局变量,锁住db

class Task1 implements Runnable {
@Override
public void run() {
synchronized (db) {

            ContentValues cv1 = new ContentValues();
            cv1.put("name", "李");
            cv1.put("age", 17);
            db.insert("person", null, cv1);
        }
    }
      }
class Task2 implements Runnable {

    @Override
    public void run() {

synchronized (db){
ContentValues cv1 = new ContentValues();
cv1.put("name", "张");
cv1.put("age", 18);

            ContentValues cv2 = new ContentValues();
            cv2.put("name", "孙");
            cv2.put("age", 25);
            for (int i = 0; i < 10; i++) {
                db.insert("person", null, cv1);
                db.insert("person", null, cv2);
            }}
    }
}
class Task3 implements Runnable {

    @Override
    public void run() {

synchronized (db) {
ContentValues cv1 = new ContentValues();
cv1.put("name", "王");
cv1.put("age", 22);
ContentValues cv2 = new ContentValues();
cv2.put("name", "赵");
cv2.put("age", 80);
ContentValues cv3 = new ContentValues();
cv3.put("name", "jesse");
cv3.put("age", 99);
for (int i = 0; i < 10; i++) {
db.insert("person", null, cv1);
db.insert("person", null, cv2);
db.insert("person", null, cv3);
}
}
}
}


我是这样写的 不过调用的时候不起作用啊