新手小白想问大神们一个问题,像下面这个程序这样,public class fragmentch4 extends Fragment { private double [] bcgTemp=new double[7]; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
msgReceiver = new MsgReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.android.smartphone.SmartphoneSystemActivity");
getActivity().registerReceiver(msgReceiver, intentFilter); } public class MsgReceiver extends BroadcastReceiver { @Override
public void onReceive(Context context, final Intent intent) {
new Thread(new Runnable() {
@Override
public void run() {
double [] ddata=new double[4]; ddata=intent.getIntArrayExtra("4_ch_data");
Process(ddata);
}
}).start();
}private void Process(double [] data)
{
int i=0; bcgTemp[0]=(data[0]);
bcgTemp[1]=(data[1]);
bcgTemp[2]=(data[2]);
bcgTemp[3]=(data[3]);
bcgTemp[4]=bandpassRes(data[3]);
bcgTemp[5]=bandpass3(data[3]);
bcgTemp[6]=data_1_filtered;
plot(bcgTemp);
}
}
在类MsgReceiver中开了个子线程,并在子线程中给外部类 fragmentch4的成员变量bcgTemp赋值,当收到第二个广播时是不是此时使用的bcgTemp就已经被第一个子线程改动过了?也就是说bcgTemp算是一个临界资源吗?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
msgReceiver = new MsgReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.android.smartphone.SmartphoneSystemActivity");
getActivity().registerReceiver(msgReceiver, intentFilter); } public class MsgReceiver extends BroadcastReceiver { @Override
public void onReceive(Context context, final Intent intent) {
new Thread(new Runnable() {
@Override
public void run() {
double [] ddata=new double[4]; ddata=intent.getIntArrayExtra("4_ch_data");
Process(ddata);
}
}).start();
}private void Process(double [] data)
{
int i=0; bcgTemp[0]=(data[0]);
bcgTemp[1]=(data[1]);
bcgTemp[2]=(data[2]);
bcgTemp[3]=(data[3]);
bcgTemp[4]=bandpassRes(data[3]);
bcgTemp[5]=bandpass3(data[3]);
bcgTemp[6]=data_1_filtered;
plot(bcgTemp);
}
}
在类MsgReceiver中开了个子线程,并在子线程中给外部类 fragmentch4的成员变量bcgTemp赋值,当收到第二个广播时是不是此时使用的bcgTemp就已经被第一个子线程改动过了?也就是说bcgTemp算是一个临界资源吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货