Toc
0 results found
  • 20/03/16

    自从多线程这个概念被发明之后,在开发中就无时无刻不得操心线程安全的问题。

    但是,在了解线程安全之前,我们先来了解一下 Java 的内存模型,搞明白线程是如何工作的。

  • 20/03/14

    线程池(Thread Pool)对于限制应用程序中同一时刻运行的线程数很有用。因为每启动一个新线程都会有相应的性能开销,每个线程都需要给栈分配一些内存等等。

    我们可以把并发执行的任务传递给一个线程池,来替代为每个并发执行的任务都启动一个新的线程。只要池里有空闲的线程,任务就会分配给一个线程执行。在线程池的内部,任务被插入一个阻塞队列(Blocking Queue ),线程池里的线程会去取这个队列里的任务。当一个新任务插入队列时,一个空闲线程就会成功的从队列中取出任务并且执行它。

    线程池经常应用在多线程服务器上。每个通过网络到达服务器的连接都被包装成一个任务并且传递给线程池。线程池的线程会并发的处理连接上的请求。

    合理利用线程池能够带来三个好处。

    1. 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗
    2. 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行
    3. 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。
  • 20/02/28

    Activity 几乎是所有 Android 开发者最熟悉的陌生人了。

    说它熟悉,是因为每个开发者在进行开发时,第一个要面对的对象就是 Activity,应用界面的跳转、UI的显示全部都要依托Activity。

    说它陌生,是因为几乎很少有开发者能把 Activity、Window、View、DecorView、WindowManager、ViewRootImpl 错综复杂的关系理清。

    当我们打开 Android Studio,建立一个新的应用,编译启动项目,手机上出现了『Hello World!』,有没有想过这些问题:

    Activity 是由谁来实例化的?

    Window 是个啥?

    经常听说 DecorView,它是个普通的 View 吗?它的作用是什么?

    WindowManager 起了什么作用?

    Activity 是如何将内容显示到屏幕上的?

    宋慧乔与宋仲基为什么要离婚?

    带着这些问题,我们来揭开它的面纱,一起走近科学,看看『Hello World!』背后的故事。

1345678