美文网首页Android实用技术
日更(十三)-Android-线程

日更(十三)-Android-线程

作者: Jlanglang | 来源:发表于2019-01-13 21:05 被阅读19次

瞎扯

感觉标题还是不要写挑战了,有点逗
今天写的...
其实我对线程也不是特别熟练.
写写我自己的理解,不是写怎么用线程.

线程

程序执行流的最小单元

每个线程都会从最头执行到return

这里我觉得需要有个概念.

我们写的app是怎么运行的.

main函数

都知道是程序的入口.

那么,从程序启动,到main函数运行.
是不是可以理解成
底层开启一个线程调用了main函数方法.

 new Thread(){
            @Override
            public void run() {
                super.run();
                main();
            }
        }.start();

而我们的app之所以,能一直响应.
无非是main里面Looper死循环这种的.

其实不管什么程序.本质上都是死循环.
保证线程不结束,循环内不停的处理逻辑.

无非是函数套函数.一直不停套下去.

fun a() {
    val x = 1;
}

fun b() {
    val y = 2;
}

fun c() {
    val x = 1;
    val y = 2;
}

把a和b放一个线程.
把c放一个线程.

其线程里的内容就是一样的
线程从头执行到结束.

有人说,你这不废话吗.

我也觉得是废话.

但是,线程的本质就是这样.
哪怕写出花来.

它的本质还是从第一行一直执行到结束.从上到下不停的跑.

所以,能否可以理解成

硬件设备启动系统是一个固定的入口
这个入口,启动各种进程
进程启动着线程
线程跑着代码.

线程打比喻的话就是

一个人看书,必须按书上的内容和条件从第一行按顺序看.
然后看到第十页的第三行的时候.告诉这个人,要从头看一次.
这个人就这样,不停的看不停的看.

书上的内容就是我们写的代码.

线程的源码


    public synchronized void start() {

        if (threadStatus != 0 || started)
            throw new IllegalThreadStateException();

        group.add(this);

        started = false;
        try {
            nativeCreate(this, stackSize, daemon);
            started = true;
        } finally {
            try {
                if (!started) {
                    group.threadStartFailed(this);
                }
            } catch (Throwable ignore) {
            }
        }
    }

  private native static void nativeCreate(Thread t, 
long stackSize, boolean daemon);

可以看到这个nativeCreate是jni方法.

我猜底层无非创建了线程对象,然后再调用java的这个thread的run()方法.

说到这,

我又想起了,多线程,本质上是cpu在不停的切换处理不同的请求.只不过速度很快而已.
cpu的一个核心同一时间也只会处理一个请求.


好了,今天就这样了
每天日更,能准备找资料的时间几乎没有,基本是全裸上阵,全靠经验,哈哈
挑战的地方就在这里了.
今天有点水
感觉程序员日更题目还是很好找的.但是想写对,写精还是很难

您的喜欢与回复是我最大的动力-_-
交流群:493180098

相关文章

  • 日更(十三)-Android-线程

    瞎扯 感觉标题还是不要写挑战了,有点逗今天写的...其实我对线程也不是特别熟练.写写我自己的理解,不是写怎么用线程...

  • Android-线程

    什么是线程? 线程指的是进程中的一个控制单元,也就是进程中的每个单元任务,一个进程中可以有多个线程同时并发运行。 ...

  • Android-Threadpool

    关于线程我不想再说什么,感兴趣的同学可以看我之前写过的一篇文章:Android-多线程,这里对线程有一个比较详...

  • Android-多线程

    一:线程相关概念 聊多线程之前,我们先说一说线程,说线程之前,我们了解一下进程。 1.什么是进程? 通俗的...

  • Android-线程池

    线程池就是创建若干个可执行的线程放入一个池(容器)中,有任务需要处理时,会提交到线程池中的任务队列,处理完之后线程...

  • 日更(十六)-Android-注解

    瞎扯 记得刚学java的时候,看过注解,但完全不明白是啥玩意.弄不明白后来写android.经常看到,直到有次用a...

  • Android Studio 视图结构

    1、Tools->Android->Layout Inspector2、Tools->Android->Andro...

  • 日更十三

    媒体炒作 老画家黄养辉曾给徐悲鸿做过十九年的秘书,他说徐悲鸿在四十年代,经常看报纸,他还要别人收集各家信息,如果这...

  • 日更十三

    今天有点不舒服,身体原因其次,心里不舒服,好像胸口堵了一块,难受。然后,做什么事情都没状态,可是我又想做,然后又做...

  • 日更十三

    苏州 平江路一游

网友评论

    本文标题:日更(十三)-Android-线程

    本文链接:https://www.haomeiwen.com/subject/djbldqtx.html