博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java线程总结
阅读量:6220 次
发布时间:2019-06-21

本文共 1464 字,大约阅读时间需要 4 分钟。

hot3.png

1,什么是线程:线程是cup工作的最近单位,多个线程组成一个进程

2.什么是线程安全:多线程同步进行,多次实验下来 得到的结果和单线程是一致的,其中的变量也是预期的,就可以成为线程安全

3.java项目是怎样被执行的: java文件被编译成.class文件,java类加载器加载到内存中,(jvm内存:1.java栈'2.方法区‘3.java堆’4.程序计数器);最终通过汇编指令来执行

4.线程同步的关键字 synchonized : 针对代码块上锁;针对方法上锁(保持同一把锁的话,需要 锁的对象一样:可以使用this  或者 类的字节码class对象)。synchonized使得多线程同步

5.wait()和notify() 让多线程之间通信。wait()和sleep()的区别:wait()方法释放锁,等待重新被唤醒,然后再次拿到锁。sleep()不会释放锁,只是让cup去暂停本线程,去执行其他的线程。

6.notify()方法和notofyAll()方法的区别:notify()方法是唤醒一个线程,并且把对象的锁赋予该线程;notifyAll是唤醒所有等待的线程,线程去抢夺对象的锁

7.创建线程的三种方法: 继承Thread类;实现Runnable()接口(一般多使用这个);Callable()可以捕捉异常的线程

8.start()方法和run()方法的区别:1.start()方法来启动线程,真正实现了多线程运行。这时无需等待run方法体代码执行完毕,可以直接继续执行下面的代码;通过调用Thread类的start()方法来启动一个线程, 这时此线程是处于就绪状态, 并没有运行。 然后通过此Thread类调用方法run()来完成其运行操作的, 这里方法run()称为线程体,它包含了要执行的这个线程的内容, Run方法运行结束, 此线程终止。然后CPU再调度其它线程。

2.run()方法当作普通方法的方式调用。程序还是要顺序执行,要等待run方法体执行完毕后,才可继续执行下面的代码; 程序中只有主线程——这一个线程, 其程序执行路径还是只有一条, 这样就没有达到写线程的目的。
记住:多线程就是分时利用CPU,宏观上让所有线程一起执行 ,也叫并发

9.线程的周期:创建 (new )、就绪(start())、运行(run())、阻塞()和死亡()

10.线程池(Executors):固定数目线程池 缓存线程池 单一线程池  类比于数据库连接池

11.JAVA5里面的 Lock和Condition

Lock锁类似于 synchnozied,相比于synchonized,Lock更加面向对象

Condition类似于wait()和 notify(),condition相比于 更加灵活,在多个线程之间通信更加方便。Condition唤醒指定的一个线程,定义多个condition对象。

12.阻塞队列:ArrayBlockQueue 实现多线程的阻塞。自己模拟一个阻塞队列的代码。 一个put()的方法 一个take()方法,

13.多线程集合 hashMap对应 ConCurrentHashMap , ArrayList 对应 CopyAndWriteArrayList

14.线程和进程的关系:最小单位是线程,进程是由多个线程组成的。

15.内部类范文成员变量的时候,成员变量需要 final修饰。

 

转载于:https://my.oschina.net/u/2870118/blog/1935571

你可能感兴趣的文章
基于http协议使用protobuf进行前后端交互
查看>>
bash腳本編程之三 条件判断及算数运算
查看>>
php cookie
查看>>
linux下redis安装
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
StringBuilder用法小结
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
如何申请开通微信多客服功能
查看>>
Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)
查看>>
非监督学习算法:异常检测
查看>>
App开发中甲乙方冲突会闹出啥后果?H5 APP 开发可以改变现状吗
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
Linux coredump
查看>>
Ubuntu 10.04安装水晶(Mercury)无线网卡驱动
查看>>
Myeclipes快捷键
查看>>
我的友情链接
查看>>
ToRPC:一个双向RPC的Python实现
查看>>
我的友情链接
查看>>