随笔——runnable勘误以及其他

   关于runnable,百度一下帖子无算,而无脑者甚众,可以看出java从业者素质差者居多,而葛龚莫辨、扞格难通者俯拾即是。

   以下一句是我随手拿的一个解释:

   在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口

   我们来看官方注释:

    Represents a command that can be executed. Often used to run code in a different Thread.

   我英文不好,勉强翻译过来大概是:

   代表一条可执行的指令,经常被用在另外的线程中执行代码

   就是说,它的本质是一条指令而已,定义上与多线程毫无瓜葛,只是作为一种手段被嵌入thread中,而很多博主所谓的第二种“实现Runnable接口”实现多线程实际上也是借助于new thread ,如果没有new thread,根本不会有多线程,所以java实现多线程只有一种:new thread。

   接下来我贴一下自己在android环境的测试记录:

    public void click(View v){
        Log.d("第一个activity 开启意图之前:", String.valueOf(System.currentTimeMillis()));
        startActivity(new Intent(MainActivity.this, SecondActivity.class));
        Log.d("第一个activity 开启意图之后:", String.valueOf(System.currentTimeMillis()));
        Log.d("main id:", String.valueOf(Thread.currentThread().getId()));
        v.postDelayed(new Runnable() {
            
            @Override
            public void run() {
                // TODO Auto-generated method stub
                Log.d("runnable id:", String.valueOf(Thread.currentThread().getId()));
                 finish();
                 Log.d("第一个activity finsh:", String.valueOf(System.currentTimeMillis()));
            }
        }, 2000);
       new Runnable() {
        
            @Override
            public void run() {
                // TODO Auto-generated method stub
                Log.d("runnable id2:", String.valueOf(Thread.currentThread().getId()));
            }
        }.run();
    
        new Thread(new Runnable() {
        
            @Override
            public void run() {
               // TODO Auto-generated method stub
                Log.d("thread id:", String.valueOf(Thread.currentThread().getId()));
            }
        }).start();
    }
View Code

   以下是log:

    可以看到,只要没有new thread的话,都是主线程,管你有没有实现runnable呢。

    唉,现在的码农,真是越来越不成个样子了...

    另外备忘一条,android中,只要是说明文档中没有说明的,都按照同步操作来理解,比如startactivity(intent),异步操作一般都是有回调的,比如startanimation(animation)。

   新年快乐么么哒

posted @ 2016-02-17 11:30  钢面公爵  阅读(477)  评论(3编辑  收藏  举报