在struts2中,启动新的线程 调用ServletActionContext.getRequest() 报空指针错误
你要共享数据,那么肯定要有一块内存空间是多个线程都能访问的,类似于静态变量,另外,还要考虑当有多个线程同时去取数据时,加锁访问,这样才能保证数据的正确性,数据库就是这样的
这个共享的缓存数据是否进程共享的,是不是只能某个线程私有的地址了
由于是并发的,当开启线程A(有session)后,再开启线程B,你得确定线程B开启的时候,此时A线程中已经初始化了session及其中想获取的数据。在B线程抓取数据之前,你可以将其挂起,等有数据之后,通知挂起线程,再搂数据就可以了。
ServletActionContext.getRequest() 这个方法只能在struts的action中调用的吧,你新启动的线程中调用没有请求,应该就获取不到请求对象的吧。