什么线程,什么是进程
进程非常大 eg:QQ,播放器,游戏,IDE
线程是指,进程包含线程,eg:视频里的声音、图像、字幕
- 说起进程,就不得不说程序,程序十指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。
- 而进程则是执行程序的一次执行过程,他是一个动态的概念。是系统资源分配的单位
- 通过在进程中可以包含若干个进程,当然一个进程至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位。
核心概念
- 线程就是独立的执行路径
- 在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程
- main()称之为主线程,为系统的入口,用于执行整个程序
- 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能认为的干预的
- 对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制
- 线程会带来额外的开销,如cpu调度时间,并发控制开销
- 每个线程在自己的工作内存交互,内存控制不当会造成数据不一致
线程创建
创建方式
- 继承Thread类
- 实现Runnable接口
- 实现Callable接口
Thread类
生产者注册到注册中心,消费者请求消费,注册中心返回给消费者消息,消费者相生产者废除请求,监控中心监控。
节点角色说明:
- Provider: 暴露服务的服务提供方
- Consumer: 调用远程服务的服务消费方
- Registry: 服务注册与发现的注册中心。
- Monitor: 统计服务的调用次调和调用时间的监控中心
- Container: 服务运行容器。
调用关系说明:
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者.
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另4台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
常用标签
- dubbo:application:指定应用程序名称
- dubbo:registry :指定连接注册中心信息(配置注册中心)
- dubbo:protocol:服务提供方注册服务采用的协议
- dubbo:service:对外暴露服务配置
- dubbo:reference:配置订阅的服务(接口的代理)
其他标签及属性用到了去api查询即可