GreenDao号称最快的ORM数据操作。特别是多线程中,因为他在多线程查询中,在每个线程中定义一个属于当前线程的查询对象,这样子每个线程之间都互相不干扰,比对对象加锁进行同步操作的性能提高了很多,节省了加锁的开销。
先用最普通的方法在线程中访问对象读取数据。
private void queryThread() {
final Query query = sonDao.queryBuilder().build();
new Thread(new Runnable() {
@Override
public void run() {
List<Son> sonList = query.list();
Log.d("son",sonList.get(0).getName());
}
}).start();
}
运行程序会抛出一个异常。
信息提示方法使用应该仅在当前线程,使用forCurrentThread()方法为这个线程获得一个事例。(该方法返回一个查询类Query)
现在添加这个方法。
private void queryThread() {
final Query query &