如何在Android中同时运行2个线程

皮胡

我是android编程的新手,很抱歉以前是否曾问过这种类型的问题。我越来越麻烦,同时创造threads.In我的代码,我已经初始化,int i=500;并且在我的第一个线程T1,我想增加T1的价值if(i<5000),也对我的线程T2要检查其中T2的值递减的情况if(i>0),请帮助...提前致谢

umair.ali

这是您针对此特定增减问题所需的纯Java线程android实现...

// class lass level declarations
private static int DEF_VALUE = 500;
private static int MIN_VALUE = 0;
private static int MAX_VALUE = 1000;

private AtomicInteger i = new AtomicInteger(DEF_VALUE);
private Thread t1 = null;
private Thread t2 = null;

private void initThreads() {
    Log.i(TAG, "Initializing Threads...");

    t1 = new Thread(new Runnable() {

        @Override
        public void run() {
            Log.i(TAG, "Starting T1.");
            while (i.get() < MAX_VALUE) {
                i.incrementAndGet();
                Log.d(TAG, String.format("Incremented by T1, i = %d", i.get()));
            }
            Log.i(TAG, "Finishing T1.");
        }
    });

    t2 = new Thread(new Runnable() {

        @Override
        public void run() {
            Log.i(TAG, "Starting T1.");
            while (i.get() > MIN_VALUE) {
                i.decrementAndGet();
                Log.d(TAG, String.format("Decremented by T2, i =  %d", i.get()));
            }
            Log.i(TAG, "Finishing T2.");
        }
    });

    t1.start();
    t2.start();
}

希望这可以帮助...:)

更新:源已更新为使用AtomicInteger而不是plain int以避免并发访问问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章