创建线程的两种方式
1,实现Runnable接口
创建类implements接口Runnable
实现其run方法
在测试类中创建类的实例并调用
2,继承Thread类
创建类extends接口Thread
重写其run方法
在测试类中创建类的实例并调用
多线程的数据安全解决办法(比如银行转账,买火车票等)
就是将可能会发生数据安全的代码块放进synchronized(obj){}的大括号内就可以了这样方法的执行效率会变慢,但是数据会安全。
synchronized(obj:是表示可以访问同步的对象,object表示全部都可以)