2,描述hashmap的存储结构。如何实现多线程并发访问(修改)同一个对象时保证线程安全?请至少说出三种方法。
①、hashmap通过数组和链表来实现对数据的存储。
②、hashmap是线程不安全的。
③、如何保证线程安全?
1)
在对象/变量前加上
volatile
。
2)
将对象/变量加上锁
synchronized
修饰。在线程中,使用同步方法或者同步块。
3)
使用带有线程安全的线程。如:继承
TimerTask
类实现线程,用
Timer.schedule
启动线程
。