遇到一个问题。android应用挂了一个jni的c++ so,so中有一个static变量,我想起多个线程,且每个线程中独立创建这个static变量,可有办法实现???
现在的情况是创建出来的多线程都是共用一个该static变量,做多线程的意义完全不存在了。

解决方案 »

  1.   

    这种情况就不应该用static变量啊……
      

  2.   

    楼主在jni中可以用atomic_inc()以及atomic_add()函数吗?实现原子加减效果,防止线程干扰
      

  3.   


    诶,调用的库中就是这么定义的,里面封装的很多方法都要这个static值。。
    有办法能让每个线程都创建一个不
    获取不采用多进程转战其他方法? help啊 。。
      

  4.   


    我比较愚钝,可能话没说明白。程序调用一个封装的so(含static A,和对操作A的一些方法),
       线程一:给A赋值为“threadA”--》执行操作
       线程二:给A赋值为“threadB”--》执行操作 。  并行赋值,并行时必须保持每个线程的A值不变。原子操作我不懂,刚看了下资料,是绕过寄存器直接访问内存的操作(自己想的),这根我要实现的视乎很有出入还请高手赐教
      

  5.   

    好吧,我的问题是,load一个动态库.so, 再load几次,能另辟空间存储后几次load的.so。有可能实现吗??