多线程(一)

什么线程,什么是进程

进程非常大   eg:QQ,播放器,游戏,IDE

线程是指,进程包含线程,eg:视频里的声音、图像、字幕

  • 说起进程,就不得不说程序,程序十指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。
  • 而进程则是执行程序的一次执行过程,他是一个动态的概念。是系统资源分配的单位
  • 通过在进程中可以包含若干个进程,当然一个进程至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位。

核心概念

  • 线程就是独立的执行路径
  • 在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程
  • main()称之为主线程,为系统的入口,用于执行整个程序
  • 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能认为的干预的
  • 对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制
  • 线程会带来额外的开销,如cpu调度时间,并发控制开销
  • 每个线程在自己的工作内存交互,内存控制不当会造成数据不一致

线程创建

创建方式

  1. 继承Thread类
  2. 实现Runnable接口
  3. 实现Callable接口

Thread类

生产者注册到注册中心,消费者请求消费,注册中心返回给消费者消息,消费者相生产者废除请求,监控中心监控。

节点角色说明:

  • Provider: 暴露服务的服务提供方
  • Consumer: 调用远程服务的服务消费方
  • Registry: 服务注册与发现的注册中心。
  • Monitor: 统计服务的调用次调和调用时间的监控中心
  • Container: 服务运行容器。

调用关系说明:

  • 服务容器负责启动,加载,运行服务提供者。
  • 服务提供者在启动时,向注册中心注册自己提供的服务。
  • 服务消费者在启动时,向注册中心订阅自己所需的服务
  • 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者.
  • 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另4台调用。
  • 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

常用标签

  • dubbo:application:指定应用程序名称
  • dubbo:registry :指定连接注册中心信息(配置注册中心)
  • dubbo:protocol:服务提供方注册服务采用的协议
  • dubbo:service:对外暴露服务配置
  • dubbo:reference:配置订阅的服务(接口的代理)

其他标签及属性用到了去api查询即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值