导航:首页 > 操作系统 > android变量同步

android变量同步

发布时间:2023-10-13 09:23:19

‘壹’ android中,一个类里边有两个方法,比如A和B,线在有多个线程,都可以随机的调用A或B,如何实现同步

public static void main(String[] args) {

S s = new S();
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
s.A();
}
}
});
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
s.B();
}
}
});
t1.start();
t2.start();
}

public static class S {

public Object locka = new Object(), lockb = new Object();

public void A() {
synchronized (lockb) {
synchronized (locka) {
System.out.println("A");
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
locka.notify();
}
lockb.notify();
}
}

public void B() {
synchronized (locka) {
synchronized (lockb) {
System.out.println("B");
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
lockb.notify();
}
locka.notify();
}
}
}

‘贰’ 如何修改android手机的同步设置

修改android手机的同步设置:
Android自带了同步功能之账户与同步:

(1)点击“设置”,“账户与同步”选项。
(2)进人账户与同步设置后,勾选“背景数据‘和”自动同步’这两个选项,并且点击要进行同步的账户,也可以不勾选自动同步选项进而采取手动同步。

(3)设置自动同步后。手机会自动连接网络同步,这样就完成了手机里联系人的同步。

‘叁’ 安卓手机设置中的自动同步是什么功能

1.
android手机自带了同步功能,也就是说在手机“设置”里“账户与同步”选项点击进入后,登录账户后,可以勾选设置“联系人”、“日历”“短信”、“通话记录”“相册”、等等有关数据,“自动同步”。
2.
同步功能,可以设置为手动同步和自动同步,自动同步下可以设置为“wifi下自动同步”这样就不会浪费手机数据流量。
3.
设置好之后,即使有天换了个手机,登录账户点选同步,也就能找回原来的信息了,是这个时代不错的云存储同步功能。

‘肆’ android中怎样让main线程和子线程同步一个变量

1、检查Thread,确定没有在Background thread中直接调用adapter,如果有,请移除相关代码到Handler中处理;
2、尽量将数据放在adapter类中管理,不需要的时候清除信息(勤写clear()),及时用notifyDataSetChanged()刷新;
3、在Activity或者Fragment合适的位置(onPause/onStop)要及时检查thread,有adapter数据处理相关的应马上停止;
4、这个错误经常出现在Activity休眠起来之后,主要还是使用adapter不太小心造成的。如果实在找不到原因,在onPause()函数中停止所有的background thread,并且在onResume()函数最前面清空adapter中的数据,并且adapter.notifyDataSetChanged()。然后重新更新加载数据,这样一般可以解决问题。

‘伍’ Android如何跨进程同步

两个进程要进行同步,如果用IPC机制通信来同步,那么就会遇到一个问题,那就是这两个进程必须都已经启动才可以,如果遇到一个进程启动,但是另外一个进程不知道什么时候启动,这个办法就很难行得通了。

这时候就可以用到Android系统根据java提供的 FileLock 类

1.FileLock是线程安全的

2.FileLock适用于进程间文件读写控制,不适用于同一进程的不同线程

3.分为共享锁和独占锁,共享锁允许其他进程同样获取共享锁,独占锁不允许其他进程获得锁。

4.有两种方式获得文件锁,FileChannel的lock和tryLock,用lock会阻塞当前线程,直到获取到锁,用tryLock会尝试获取,如果获取失败则返回null,不会阻塞线程。

5.FileLock释放的条件是:自己调用release/close或者所使用的FileChannel调用close或者是JVM终止运行。

6.文件锁的效果是与操作系统相关的。一些系统中文件锁是强制性的,当Java的某进程获得文件锁后,操作系统将保证其它进程无法对文件做操作了。而另一些操作系统的文件锁是询问式的(advisory),意思是说要想拥有进程互斥的效果,其它的进程也必须也按照API所规定的那样来申请或者检测文件锁,不然将起不到进程互斥的功能。所以文档里建议将所有系统都当做是询问式系统来处理,这样程序更加安全也更容易移植。

我们这里用的就是独占锁。

这个是先运行的获取锁的类,获取锁后持有10s后释放。

这个类是在第一个类运行后再运行的类,此时该进程会一直等到FileLockTest释放锁后才能获得锁然后继续运行。我们可以在获得锁之后do any thing you want,从而实现进程间同步。

多次运行后可能有人会发现有时候先打印获得锁后打印释放锁,其实是这样的,这是两个进程,一个进程释放锁之后另外一个进程才可能获得锁,但是两个进程的打印时间的执行不是同步的,所以不一定是先打印释放锁,只要时间基本一致即可(本人多次运行时间差小于2ms)。

通过这两个类的分别运行,可以看到即使不是都启动完成,一样可以跨进程同步。

阅读全文

与android变量同步相关的资料

热点内容
pdf转换成word免费版在线转换 浏览:460
荒废了三年还能做程序员吗 浏览:654
阿里云内网vpn服务器 浏览:101
l命令第一个点对第二个点对不上 浏览:827
oracle导出表命令 浏览:909
怎么写域名加密 浏览:1003
手机文件压缩出错 浏览:522
如何登录毒app 浏览:836
汽车中控台加密 浏览:862
海南农村信用社app如何开通短信 浏览:809
phpdns缓存 浏览:415
ipad腾讯视频app如何播放本地视频 浏览:990
虾米服务器关闭如何找到以前的歌 浏览:18
php自动建站 浏览:475
命令与征服3游侠网 浏览:970
腾讯云买哪个地区服务器 浏览:249
香港哪里有app卖内地零食 浏览:683
编译内核找不到工具链 浏览:453
java常见模式 浏览:504
典欣空调压缩机 浏览:425