java多线程2

1.理解io,多线程,集合等基础框架,对JVM原理有一定了解,熟练掌握,java核心编程技术;

2.对用过的开源框架能了解他的原理和机制;

3.熟悉分布式系统的设计和应用,熟悉分布式,缓存,消息等机制;能对分布式常用技术进行合理的应用,解决问题;

4.熟悉internet基本协议(如TCP/IP,HTTP)内容及相关应用;

5.熟练掌握springmvc,spring,mybatis等开发框架,了解dubbo开发框架

 

#########################

idea 的pom文件报红:

pom所有依赖version红色但是不影响运行

https://blog.csdn.net/qq_28241535/article/details/101697509

 

idea 中pom.xml依赖版本号报错(报红,如下图所示)

https://blog.csdn.net/qq_42237698/article/details/87363592

 

 

解决iDEA pom.xml依赖了jar但是External Libraries包为空

https://blog.csdn.net/qq_38677458/article/details/103241240

#########################

  • 进程:

  • 线程: 一个进程里面有一个主线程叫main()方法, 一个进程里面不同的执行路径

  • 同一个时间点上,一个CPU只能支持一个线程在执行;

  • 真正多线程: 机器是多个CPU或者多核

 

 

 

多线程

 

1.继承Thread:

      java单继承,如果线程类已经有一个父类,则无法继承Thread类

run()方法,主线程调用,可以重复调用

start()方法,让系统找一个时间来让子线程调用run方法,不能重复调用
  public class Thread implements Runnable {
   //其他省略
   @Override
   public void run() {
       if (target != null) {
           target.run();
      }
  }
   public synchronized void start() {
       //其他省略
  }
}

2.实现Runnable接口:

      代码可以被过个线程共享,代码和数据独立
  public interface Runnable {
   public abstract void run();
}

 

如果一个资源的创建,使用,销毁都在同一个线程内完成,且永远不会脱离该线程的控制,则该资源的使用就是线程安全的

 

物理核 = cpu数 * 每个cpu核心数

多核CPU: 一个CPU有多个核心数

 

###########面试问题##########

为什么用线程池:

  避免频繁的创建和销毁线程,线程对象的重用;

根据项目灵活的控制并发的数目;

 

线程的生命周期:

  new

start

runnable

running

 

 

 

 

 

 

instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:

  boolean result = obj instanceof Class

  其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。

 

boolean ? A:B

true选A,false选B

posted @ 2020-10-22 11:18  等木鱼的猫  阅读(80)  评论(0编辑  收藏  举报