多线程有3种方法:
1.
class mt implements Runnable
{
    public void run(){...}//run()由Runnable定义,就是你要执行的代码
    ...
}
...
new Thread(new mt()).start();
2.
class mt extends Thread
{
    public void run(){...}
    ...
}
...
new mt().start();
3.
class mt extends TimerTask
{
    public void run(){...}
    ...
}
...
new Timer().schedule(new mt(),1000,200);//等待1秒钟后每2毫秒执行一次后两种方法在本质上和第一种一样,因为Thread 和 TimerTask 都implements Runnable
但显然第一种方法最好,因为mt 还可以extends其他类
至于同步,只要在你要同步的方法前加synchronized,然后适当用一下wait() 和 notify()