在什么情况下,即将实现等于已实现?

找到刚刚的进程,点击连接

点击之后,切换到线程界面

找到刚刚的线程,t1、t2,点击检测死锁

3.11.3哲学家就餐问题

有5位哲学家,围坐在圆桌旁

  • 他们只做两件事,思考和吃饭,思考一会吃口饭,吃完饭之后接着思考
  • 吃饭的时候要用两根筷子吃,桌子上一共有5跟筷子,每位哲学家左右手边都各有一根筷子
  • 如果筷子被别人使用,自己就需要等待

吃了一会后,发生了死锁,哲学家各拿着一根筷子(如果没有死锁,会一直运行下去)

使用jconso查看线程运行状态:

一人拿一根筷子都不放下,等待对方放下筷子,造成死锁

活锁出现在两个线程互相改变对方的结束条件,导致谁也无法结束

互相改变对方的停止条件,都不会终止,造成活锁

让睡眠时间不同,或者增加随机的睡眠时间,让两个线程交错开,避免活锁的产生

很多教程把饥饿定义为,一个线程由于优先级太低,始终得不到cpu调度执行,也不能够得到结果,饥饿的情况不易演示,到读写锁时会涉及饥饿问题

一个线程饥饿的例子,先来看看使用顺序加锁的方式解决之前的死锁问题

线程A先获取对象A,然后获取对象B

线程B先获取对象B,然后获取对象A(详见)

但是对于运行结果,可以看到,基本都是[赫拉克利特]线程在吃法,其他线程很少,这就是饥饿问题


 
 

与synchronized()不同的是,synchronized(obj) 可以指定锁住的对象,但是ReentrantLock仅仅只能锁住从lock() -> unlock()(这样说不是很严谨,因为上锁的方法不止一个,总之就是从上锁到解锁的那段代码都是被锁上的)内的代码,并且要保证ReentrantLock是线程间共享。

可重入是指同一个线程如果首次获得了这把锁,那么因为它是这把锁的拥有者,因此有权利再次获得这把锁,如果是不可重入的,那么第二次获得锁时,自己也会被锁挡住

使用打断操作,是为了防止死锁的发生,如果使用lock.loc(),会一直等待,不会抛异常信息

//等待时间后的运行结果

用锁超时解决哲学家就餐问题



可以看到,大家吃的都很快乐,没有产生死锁问题

 
 

测试不好实现,以后有例子

synchronized中也有条件变量,就是我们讲原理时哪个waitSet休息室,当条件不满足时进入waitSet等待

ReentrantLock的条件变量比synchronized强大之处在于,他是支持多个条件变量的,这就好比

  • synchronized是那些不满足条件的线程都在一间休息室等消息
  • 而ReentrantLock支持多间休息室,有专门等烟的休息室,专门等早餐的休息室,唤醒时也是按休息室来唤醒
  • await的线程被唤醒(或打断、超时等)重新竞争lock锁
  • 竞争lock锁成功后,await后继续执行
  • 分析多线程资源时,哪些代码属于临界区
  • 使用synchronized互斥解决临界区的线程安全问题
  • 掌握synchronized加载成员方法和静态方法语法
  • 使用lock互斥锁解决临界区的线程安全问题
    • 掌握lock的使用细节:可打断、锁超时、公平锁、条件变量
  • 学会分析变量的线程安全性、掌握常见线程安全类的使用
  • 了解线程活跃性问题:死锁、活锁、饥饿
  • 同步:使用wait\notify或Lock的条件变量来达到线程间通信效果
  • 异步模式之生产者消费者

都是隐藏,一个占位,一个不占位

2:伪类一个:和两个::的区别 :

一个冒号是伪类,两个是伪元素

7. 通配符选择器( * )

5:如何用css实现一个三角形?

6:如何用css实现垂直居中?

7:如何做到响应式布局?什么是响应式布局?

  • 1、同一页面在不同大小和比例上看起来都应该是舒适的
  • 2、同一页面在不同分辨率上看起来都应该是合理的
  • 3、同一页面在不同操作方式(如鼠标和触屏)下,体验应该是统一的
  • 4、同一页面在不同类型的设备(手机、平板、电脑)上,交互方式应该是符合习惯的。
  • 1、可伸缩的内容区块:内容区块的在一定程度上能够自动调整,以确保填满整个页面
  • 2、可自由排布的内容区块:当页面尺寸变动较大时,能够减少/增加排布的列数
  • 3、适应页面尺寸的边距:到页面尺寸发生更大变化时,区块的边距也应该变化
  • 4、能够适应比例变化的图片:对于常见的宽度调整,图片在隐去两侧部分时,依旧保持美观可用
  • 5、能够自动隐藏/部分显示的内容:如在电脑上显示的的大段描述文本,在手机上就只能少量显示或全部隐藏
  • 6、能自动折叠的导航和菜单:展开还是收起,应该根据页面尺寸来判断
  • 7、放弃使用像素作为尺寸单位:用dp尺寸等方法来确保页面在分辨率相差很大的设备上,看起来也能保持一致。同时也要求提供的图片应该比预想的更大,才能适应高分辨率的屏幕

我们在平时开发的时候,会有很多场景会频繁触发事件,比如说搜索框实时发请求,onmousemove, resize, onscroll等等,有些时候,我们并不能或者不想频繁触发事件,咋办呢?这时候就应该用到函数防抖和函数节流了!

  短时间内多次触发同一事件,只执行最后一次,或者只执行最开始的一次,中间的不执行。

  指连续触发事件但是在 n 秒中只执行一次函数。即 2n 秒内执行 2 次... 。节流如字面意思,会稀释函数的执行频率

协议相同,端口相同,域名相同

11:new一个对象的过程发生了什么?

2、新对象的_proto_属性指向构造函数的原型对象。

3、将构造函数的作用域赋值给新对象。(也所以this对象指向新对象)

4、执行构造函数内部的代码,将属性添加给person中的this对象。

12:js的事件委托和事件代理?

  1. 假设父元素有4个儿子,我不监听4个儿子,而是监听父元素,看触发事件的元素是哪个儿子,这就是事件委托。
  2. 可以监听还没有出生的儿子(动态生成的元素)。省监听器。

13:js事件捕获和事件冒泡?

事件捕获指的是从document到触发事件的那个节点,即自上而下的去触发事件。相反的,事件冒泡是自下而上的去触发事件。

14:闭包是什么,哪里用到了?

闭包就是函数外部能访问到函数内部的变量

  • 1:通过闭包可以在setTimeout中实现传参效果.
  • 2:作为回调绑定到事件中

js中substr和substring都是截取字符串中子串,非常相近,可以有一个或两个参数。

相同点:当有一个参数时,两者的功能是一样的,返回从start指定的位置直到字符串结束的子串

每个对象都有__proto__内置属性.而这个内置属性等于构造函数的原型对象prototype. 
原型和原型链是JS实现继承的一种模型.
__proto__ (内置属性)一层一层的指向就可以被称为原型链。

原型链的形成是靠内置属性而不是原型对象.原型链存在于实例与构造函数的原型对象直接,而不是存在于实例与构造函数之间.

splice()方法向/从数组中添加/删除项目,然后返回被删除的项目。
slice()方法可从已有的数组中返回选定的元素。
slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
可以作用在数组和字符串上
split()方法用于把一个字符串分割成字符串数组。
提示: 如果把空字符串 (“”) 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

18:js 基础类型和复杂类型?

19:react 在即将销毁的时候可以做什么?

  • 由于更新 dom 成本昂贵,所以我们通过读取 virtual dom 这个低成本的对象,

如果操作 dom 或更新了 dom ,我们可以通过 diff 方法,来对比新旧 virtual dom 后,找出不同地方,然后只更新发生变化的部分。这样来更新 dom 就大大地节省了成本,并且提供良好的用户体验。

既可能是同步的,也可能是异步的。 准确地说,在React内部机制能检测到的地方, setState就是异步的;在React检测不到的地方,例如setInterval,setTimeout里,setState就是同步更新的。

这样兄弟组件就达到了通信的目的。

react会将你数组里面的元素一个个罗列并且渲染出来.
用表达式套数组罗列到页面上的元素,都要为每个元素加上 key 属性,这个 key 必须是每个元素唯一的标识。key可以在DOM 中的某些元素被增加或删除的时候帮助 React 识别哪些元素发生了变化。所以需要给数组每一个元素增加一个唯一的标识。

W3C标准不是一个标准,而是一系列标准的集合,包含三部分的标准:
1.结构标准,代表语言是xHTML

2.表现标准,代表语言是CSS

26:从输入 URL 到页面展现中间发生了什么?

  1. 建立 TCP 连接(三次握手)连接复用
  2. 发送 HTTP 请求(请求的四部分)
  • 关闭 TCP 连接(四次挥手)
    1. 增加了更多的CSS选择器 多背景 rgba


    29:常用的设计模式?

    单例模式,代理模式, 策略模式,装饰模式,  观察者模式,命令模式,组合模式,简单工厂, 模板方法模式.

    30:你怎么理解高内聚,低耦合?

    • 耦合:是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性调用模块的方式以及通过界面传送数据的多少。 模块间的耦合度是指模块之间的依赖关系,包括控制关系调用关系数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计顺利进行。 耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标。
    • 内聚:故名思议,表示内部间聚集、关联的长度,那么高内聚就是指要高度的聚集和关联。 高内聚是指类与类之间的关系而定,高,意思是他们之间的关系要简单,明了不要有很强的关系,不然,运行起来就会出问题。一个类的运行影响到其他的类。由于高内聚具备可靠性,可重用性,可读性等优点,模块设计推荐采用高内聚。

    高内聚,低耦合的系统具有更好的重用性维护性扩展性,可以更高效的完成系统的维护开发,持续的支持业务的发展,而不会成为业务发展的障碍。

    31:你知道六大设计原则吗?

    • 单一职责原则:一个类值负责一个功能的职责
    • 开闭原则:扩展开放,修改关闭。
    • 里氏代换原则:使用父类的地方都能使用子类对象
    • 依赖倒转原则:针对接口编程,
    • 接口隔离原则:针对不同部分用专门接口,不用总接口,需要哪些接口就用哪些接口
    • 迪米特法则: 软件实体类,尽量不与其他实体类发生关系相互作用,对外都统一的暴露接口就行了

    32:同步队列,宏观队列,微观队列?

    • 执行顺序: 先走同步队列,再走异步队列(包含微观任务队列和宏观任务队列)。同步任务结束后,先处理微观任务后处理宏观任务
    • 2、居中方式不同。margin:auto表示横竖都居中,margin: 0 auto表示横居中,竖不居中;

    margin后面一般会跟4个参数,如margin:1px、1px、1px、1px,分别表示上外边距为1px、右外边距为1px、下外边距为1px、左外边距为1px。

    如果后面只写2个参数的话,如margin:1px、2px,则表示上下外边距为都为1px,左右外边距都为2px。

    34:react高阶组件怎么理解?如何使用和使用场景.

    简单的理解是:高阶组件是参数为组件,返回值为新组件的函数。

      可以说是对组件的包裹,在包裹的过程中对被包裹的组件做了点什么(props的处理,把基础组件和其他元素组合),然后返回,这就成了一个高阶组件;
    • 可以理解成是组装,和属性代理不同的是,反向继承是继承自基础组件,所有很自然,它可以直接获取基础组件的props,操作基础组件的state。可以通过 反向继承的形式,配合compose(通过一系列的骚操作,实现任意的、多种的、不同的功能模块的组合,用来加强组件。)将携带不同功能模块的高阶组件组装到基础组件上,加强基础组件。

    先简单理解下this的指向:函数中的this是在运行时候决定的,而不是函数定义时,有下列几种情况

    • 构造函数调用, 此时 this 指向 实例对象
    • 对象方法调用, 此时 this 指向 该方法所属的对象
    • 通过事件绑定的方法, 此时 this 指向 绑定事件的对象

    改变this指向的方法:

    • 第一个参数表示要把this指向的新目标,第二个之后的参数其实相当于传参,参数以,隔开    (性能较apply略好)
    • 第一个参数同上,第二个参数接受一个数组,里面也是传参,只是以数组的方式,相当于arguments
    • 用法:a.apply(b,[1,2]);  表示要把a函数的this指向修改为b的this指向,并且运行a函数,传进去的参数是(1,2)注意  :即使只有一个参数的话,也要是数组的形式
    • bind()创建的是一个新的函数(称为绑定函数),与被调用函数有相同的函数体,当目标函数被调用时this的值绑定到 bind()的第一个参数上

    36:react的状态管理.怎么处理多个状态.

    redux就是创建一个store来管理所有状态,触发action来改变store。关于redux的使用场景是非常灵活的,可以结合各种库去用,我用惯了react,用的时候还要配合react-redux。

    3、当标签的高度设置小于10px,在IE6、IE7中会超出自己设置的高度
    解决方案:超出高度的标签设置overflow:hidden,或者设置line-height的值小于你的设置高度

    6、边距重叠问题;当相邻两个元素都设置了margin 边距时,margin 将取最大值,舍弃最小值;
    解决方案:为了不让边重叠,可以给子元素增加一个父级元素,并设置父级元素为overflow:hidden;

    39:如何用promise同时发送多个请求. 异步变同步

    Promise.all可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。
    Promse.all在处理多个异步处理时非常有用,比如说一个页面上需要等两个或多个ajax的数据回来以后才正常显示,在此之前只显示loading图标。

    Promse.race就是赛跑的意思,意思就是说,Promise.race([p1, p2, p3])里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态。

    Promise.prototype.then()方法返回的是一个新的Promise对象,因此可以采用链式写法,即一个then后面再调用另一个then。如果前一个回调函数返回的是一个Promise对象,此时后一个回调函数会等待第一个Promise对象有了结果,才会进一步调用。

    40:如何用js创建一个类.

    42:说出下列代码的执行顺序?

    • 队列执行顺序,先同步,再微观,再宏观

    43:说出下列代码的运行结果?

    44:js的深拷贝和浅拷贝的区别

    如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。

    • 采用递归去拷贝所有层级属性
    • 通过JSON对象来实现深拷贝
    • 如果对象的value是基本类型的话,也可以用Object.assign来实现深拷贝,但是要把它赋值给一个空对象

    45:有状态组件和无状态组件

    • 它属于一个class类
    • 可以通过this来接收状态和属性
    • 如果你想用react的生命周期,想对一些数据进行增删改查的话就要用到有状态组件
    • 他的动态数据都是通过父组件传值子组件通过props接收渲染
    • 针对一些简单的逻辑判断等等,选 用无状态组件

    47:并发和并行的区别

    • 解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。
    • 解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。
    • 解释三:并发是在多台处理器上同时处理多个任务。如 hadoop 分布式集群,并行是在一台处理器上"同时"处理多个任务。
    • 所声明的变量只在let命令所在的代码块内有效。(块级作用域)
    • 一旦声明,常量的值就不能改变
    • const一旦声明变量,就必须立即初始化,不能留到以后赋值。
    • const的作用域与let命令相同:只在声明所在的块级作用域内有效。
    • 在函数作用域或全局作用域中通过var声明的变量,都会被当成在当前作用域顶部声明的变量,这就是变量提升机制
    // 1. 在标签中直接绑定
    

中国知网的《标准数据总库》是国内数据量最大、收录最完整的标准数据库,分为《中国标准题录数据库》(SCSD)、《国外标准题录数据库》(SOSD)、《国家标准全文数据库》和《中国行业标准全文数据库》。《中国标准题录数据库》(SCSD)收录了所有的中国国家标准(GB)、国家建设标准(GBJ)、中国行业标准的题录摘要数据,共计标准约16万条;《国外标准题录数据库》(SOSD)收录了世界范围内重要标准,如:国际标准(ISO)、国际电工标准(IEC)、欧洲标准(EN)、德国标准(DIN)、英国标准(BS)、法国标准(NF)、日本工业标准(JIS)、美国标准(ANSI)、美国部分学协会标准(如 等标准的题录摘要数据,共计标准约38万条。《国家标准全文数据库》收录了由中国标准出版社出版的,国家标准化管理委员会发布的所有国家标准,占国家标准总量的90%以上。《中国行业标准全文数据库》收录了现行、废止、被代替以及即将实施的行业标准,全部标准均获得权利人的合法授权。标准的内容来源于中国标准化研究院国家标准馆,相关的文献、专利、成果等信息来源于CNKI各大数据库。可以通过标准号、中文标题、英文标题、中文关键词、英文关键词、发布单位、摘要、被代替标准、采用关系等检索项进行检索。

您好,请您耐心等待一小会,小编正在为您查询,会尽快为您解答哦。

您好,感谢您的耐心等待,您咨询的什么收录了现行废止被代替即将实现实施的行业标准,小编这边查询到:标准文献是对工农业新产品和工程建设的质量、规格、参数及检验方法所做的技术规定,是人们在设计、生产和检验过程中共同遵守的技术依据。标准文献可以通过以下几种途径来获取

中国知网的《标准数据总库》是国内数据量最大、收录最完整的标准数据库,分为《中国标准题录数据库》(SCSD)、《国外标准题录数据库》(SOSD)、《国家标准全文数据库》和《中国行业标准全文数据库》。《中国标准题录数据库》(SCSD)收录了所有的中国国家标准(GB)、国家建设标准(GBJ)、中国行业标准的题录摘要数据,共计标准约16万条;《国外标准题录数据库》(SOSD)收录了世界范围内重要标准,如:国际标准(ISO)、国际电工标准(IEC)、欧洲标准(EN)、德国标准(DIN)、英国标准(BS)、法国标准(NF)、日本工业标准(JIS)、美国标准(ANSI)、美国部分学协会标准(如 等标准的题录摘要数据,共计标准约38万条。《国家标准全文数据库》收录了由中国标准出版社出版的,国家标准化管理委员会发布的所有国家标准,占国家标准总量的90%以上。《中国行业标准全文数据库》收录了现行、废止、被代替以及即将实施的行业标准,全部标准均获得权利人的合法授权。标准的内容来源于中国标准化研究院国家标准馆,相关的文献、专利、成果等信息来源于CNKI各大数据库。可以通过标准号、中文标题、英文标题、中文关键词、英文关键词、发布单位、摘要、被代替标准、采用关系等检索项进行检索。

我要回帖

更多关于 目标任务情况说明 的文章

 

随机推荐