• java 多线程的经验总结


     什么是线程?

    线程是操作系统所能运算调度的最小单元,包含于进程之中,作为进程的实际运作单位;线程与进程的区别,线程是进程的子集,一个进程可以有多个线程,每个线程并行执行不同的任务,不同的进程使用不同的内存空间,而所有线程共享一片相同的内存空间,但是每个线程都拥有单独的栈内存用来储存本地数据

    Java中实现线程

    在语言层面上存在两种方式实现,java.lang.Thread 类的实例就是一个线程但是它需要调用java.lang.Runnable接口来执行,由于线程类本身就是调用的Runnable接口所以你可以继承java.lang.Thread 类或者直接调用Runnable接口来重写run()方法实现线程;而使用Runnable还是使用Thread更好呢?我们知道Java不支持类的多重继承,但允许你调用多个接口。所以如果你要继承其他类的话,当然是调用Runnable接口好了

    Thread 类中的start() 和 run() 方法有什么区别?

    start()方法被用来启动新创建的线程,而且start()内部调用了run()方法,这和直接调用run()方法的效果不一样的,当你直接调用run()方法的时候,只会是在原来的线程中调用,没有新的线程启动,只有start()方法才会启动新线程

    Java中Runnable和Callable有什么不同?

    Runnable和Callable都代表那些要在不同的线程中执行的任务,它们的主要区别是Callable的 call() 方法可以返回值和抛出异常,而Runnable的run()方法没有这些功能。Callable可以返回装载有计算结果的Future对象

  • 相关阅读:
    Nginx 禁止IP访问
    Nginx服务优化详解
    adb不响应
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    【翻译】Android避免内存泄露(Activity的context 与Context.getApplicationContext)
    内存泄露情况
    AndroidManifest笔记
    RecyclerView设置verticalSapcing等
    Fragment回调顺序及getActivity()为NullPointerException解决方法
    git tag
  • 原文地址:https://www.cnblogs.com/wangzhida/p/6924873.html
Copyright © 2020-2023  润新知