精华内容
下载资源
问答
  • 安全状态与死锁

    千次阅读 2018-11-28 21:48:19
    1.关于不安全状态与死锁状态的不同之处:  1>:正如申老师所言,当进程处于不安全状态的时候,可能会由于操作系统在期间杀死一些进程等意外情况下而使不安全状态避免向死锁状态的转化。  2>:在我看来...

    1.关于不安全状态与死锁状态的不同之处:
      1>:正如申老师所言,当进程处于不安全状态的时候,可能会由于操作系统在期间杀死一些进程等意外情况下而使不安全状态避免向死锁状态的转化。
      2>:在我看来,1中的思想可能有点牵强,毕竟在大多数情况下进程都是可以正常结束的,而且书中银行家算法也是在所有的进程正常运行对前提上进行操作的。书中产生死锁的四个必要条件之不可抢占条件中写到。进程已获得的资源在进程未使用完之前不可被抢占,只能在进程使用完时由自己释放。注意:在这里是说进程使用完时自己释放,并不是进程结束时释放。所以,当进程组处于不安全状态时,是指找不到这样的一个安全序列,使得进程能按某种推进顺序,为每一个进程分配其所需资源,直至满足每一个进程对资源的最大需求,使得每一个进程都可以顺利完成。我们需要注意的是,这种假设是在这一刻完成的,即在推进过程的这一刻,进程必须满足它所需要的所有资源,而且也只有进程结束之后才将其所拥有的所有资源释放,我想这也是书中为什么说是“满足其最大需求”。实际上,可能在程序运行的过程中,在其下次申请资源之前,就可能释放其所拥有的部分资源,从而使系统处于安全状态,只有在最坏条件下(所有的进程都霸占其此时所拥有的资源并且去申请新的资源)才能导致死锁。

    展开全文
  • 图6-9a的状态安全的,这是由于存在一个分配序列使得所有的进程都能完成。也就是说,这个方案可以单独地运行B,直到它请求并获得另外两个资源实例,从而到达图6-9b的状态。当B完成后,就到达了图6-9c的状态。然后...

    在图6-9a中有一个A拥有3个资源实例但最终可能会需要9个资源实例的状态。B当前拥有2个资源实例,将来共需要4个资源实例。同样,C拥有2个资源实例,还需要另外5个资源实例。总共有10个资源实例,其中有7个资源已经分配,还有3个资源是空闲的。
    在这里插入图片描述
    图 6-9a

    图6-9a的状态是安全的,这是由于存在一个分配序列使得所有的进程都能完成。也就是说,这个方案可以单独地运行B,直到它请求并获得另外两个资源实例,从而到达图6-9b的状态。当B完成后,就到达了图6-9c的状态。然后调度程序可以运行C,再到达图6-9d的状态。当C完成后,到达了图6-9e的状态。现在A可以获得它所需要的6个资源实例,并且完成。这样系统通过仔细的调度,就能够避免死锁,所以图6-9a的状态是安全的。
    现在假设初始状态如图6-10a所示。但这次A请求并得到另一个资源,如图6-10b所示。我们还能找到一个序列来完成所有工作吗?我们来试一试。调度程序可以运行B,直到B获得所需资源,如图6-10c所示。
    最终,进程B完成,状态如图6-10d所示,此时进入困境了。只有4个资源实例空闲,并所有活动进程都需要5个资源实例。任何分配资源实例的序列都无法保证工作的完成。于是,从图6-10a到图6-10b的分配方案,从安全状态进入到了不安全状态。从图6-10c的状态出发运行进程A或C也都不行。回过头来再看,A的请求不应该满足。
    值得注意的是,不安全状态并不是死锁。从图6-10b出发,系统能运行一段时间。实际上,甚至有一个进程能够完成。而且,在A请求其他资源实例前,A可能先释放一个资源实例,这就可以让C先完成,从而避免了死锁。因而,安全状态和不安全状态的区别是:从安全状态出发,系统能够保证所有进程都能完成;而从不安全状态出发,就没有这样的保证。
    在这里插入图片描述

    展开全文
  • 状态类是指:其本身没有内部变量和外部变量的操作的,在每个用户访问的线程栈中都是一个各自的实例。 线程安全的表现: 一个线程对该类的访问不会影响其他线程的访问结果。 无状态类示例: package ...

    规则说明:

    无状态对象即无状态类,是指其本身没有内部变量和外部变量的操作的,在每个用户访问的线程栈中都是一个各自的实例。

    线程安全的表现:

    一个线程对该类的访问不会影响其他线程的访问结果。

    线程安全的无状态类示例:

    package net.jcip.examples;
    
    import java.math.BigInteger;
    import javax.servlet.*;
    
    import net.jcip.annotations.*;
    
    /**
     * StatelessFactorizer
     *
     * A stateless servlet
     * 
     * @author Brian Goetz and Tim Peierls
     */
    @ThreadSafe
    public class StatelessFactorizer extends GenericServlet implements Servlet {
    
        public void service(ServletRequest req, ServletResponse resp) {
            BigInteger i = extractFromRequest(req);
            BigInteger[] factors = factor(i);
            encodeIntoResponse(resp, factors);
        }
    
        void encodeIntoResponse(ServletResponse resp, BigInteger[] factors) {
        }
    
        BigInteger extractFromRequest(ServletRequest req) {
            return new BigInteger("7");
        }
    
        BigInteger[] factor(BigInteger i) {
            // Doesn't really factor
            return new BigInteger[] { i };
        }
    }
    

    注意:一个线程访问的StatelessFactorizer不会影响其他线程访问StatelessFactorizer的结果,两个线程不共享状态,如同是在访问两个实例。


    展开全文
  • Java实现 LeetCode 802 找到最终的安全状态 (DFS)

    千次阅读 多人点赞 2020-05-08 12:37:48
    802. 找到最终的安全状态 在有向图中, 我们从某个节点和每个转向处开始, 沿着图的有向边走。 如果我们到达的节点是终点 (即它没有连出的有向边), 我们停止。 现在, 如果我们最后能走到终点,那么我们的起始节点是...

    802. 找到最终的安全状态

    在有向图中, 我们从某个节点和每个转向处开始, 沿着图的有向边走。 如果我们到达的节点是终点 (即它没有连出的有向边), 我们停止。

    现在, 如果我们最后能走到终点,那么我们的起始节点是最终安全的。 更具体地说, 存在一个自然数 K, 无论选择从哪里开始行走, 我们走了不到 K 步后必能停止在一个终点。

    哪些节点最终是安全的? 结果返回一个有序的数组。

    该有向图有 N 个节点,标签为 0, 1, …, N-1, 其中 N 是 graph 的节点数. 图以以下的形式给出: graph[i] 是节点 j 的一个列表,满足 (i, j) 是图的一条有向边。

    示例:
    输入:graph = [[1,2],[2,3],[5],[0],[5],[],[]]
    输出:[2,4,5,6]
    这里是上图的示意图。

    Illustration of graph

    提示:

    graph 节点数不超过 10000.
    图的边数不会超过 32000.
    每个 graph[i] 被排序为不同的整数列表, 在区间 [0, graph.length - 1] 中选取。

    class Solution {
       public List<Integer> eventualSafeNodes(int[][] graph) {
            int len = graph.length;
            List<Integer> ans = new ArrayList<>(len);
            int[] counter = new int[len];
            for (int i=0; i<len; i++) {
                if (dfs(graph, counter, i))
                    ans.add(i);
            }
            return ans;
        }
        
        private boolean dfs(int[][] graph, int[] counter, int curr) {
            if (counter[curr] > 0)
                return counter[curr] == 2;
            
            counter[curr] = 1;
            for (int child : graph[curr]) {
                if (counter[child] == 2) continue;
                if (counter[child]==1 || !dfs(graph, counter, child))
                    return false;
            }
            counter[curr] = 2;
            return true;
        }
    }
    
    展开全文
  • 什么是状态登录和无状态登录

    千次阅读 2019-05-14 21:55:29
    那缺点是什么? • 服务端保存大量数据,增加服务端压力 • 服务端保存用户状态,无法进行水平扩展 • 客户端请求依赖服务端,多次请求必须访问同一台服务器(如果集群了,相当于启动了多个tomcat,就需要在多个...
  • 操作系统中不安全状态为何并非一定转为死锁?

    万次阅读 多人点赞 2020-01-31 12:26:41
    在学习避免死锁、银行家算法时,对于安全状态一定不会产生死锁,不安全状态也并非必然转为死锁,不止你是否会疑惑为何处于不安全状态下,不是必然会发生死锁?
  • 状态对象一定是线程安全的,线程安全不一定是无状态对象。 有状态和无状态状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例变量的对象 ,可以保存数据,是非线程安全的。在不同方法...
  • 802. 找到最终的安全状态

    千次阅读 2019-06-15 00:47:54
    如果我们到达的节点是终点 (即它没有连出的有向边), 我们停止。 现在, 如果我们最后能走到终点,那么我们的起始节点是最终安全的。 更具体地说, 存在一个自然数 K, 无论选择从哪里开始行走, 我们走了不到 K 步后...
  • 在面试中被问到HTTP协议是有状态还是无状态的,当场就有点懵,因为不会就答出来。还是得总结一下啵! 一、HTTP协议的状态 HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。 也就是说,上一次的...
  • 状态,无状态对象是什么概念

    千次阅读 2012-06-18 10:23:33
    基本概念:  有状态就是有数据存储功能。...无状态对象(Stateless Bean),就是没有实例变量的对象 .不能保存数据,是不变类,是线程安全的。 代码更好理解: Java代码   p
  • 线程安全,有状态,无状态的对象

    万次阅读 2012-12-14 14:55:49
    4.如Service层、Dao层用默认singleton就行,虽然Service类也有dao这样的属性,但dao这些类都是没有状态信息的,也就是 相当于不变(immutable)类,所以不影响。Struts2中的Action因为会有User、BizEntity这样的实例...
  • 1.前后端分离后,前端登录状态保持一般采用webstorage或是cookie来保存token或用户信息的方式来维持登录状态。如果webstorage或是cookie中没有token,则前端认为是没有登录,拦截到登录页面。vue中利用路由的before...
  • 在DOS界面键入:netstat -ano 查看端口以及端口状态,ano 显示的是PID 查看被占用端口对应的PID,输入命令:netstat -aon|findstr "端口号" 查看那个进程或程序占用了端口,键入命令:tasklist|...
  • Spring单例与线程安全小结 一、Spring单例模式与线程安全Spring框架里的bean,或者说组件,获取实例的时候都是默认的单例模式,这是在多线程开发的时候要尤其注意的地方。单例模式的意思就是只有一个实例。单例模式...
  • 一、Spring单例模式与线程安全   Spring框架里的bean,或者说组件,获取实例的时候都是默认的单例模式,这是在多线程开发的时候要尤其注意的地方。   单例模式的意思就是只有一个实例。单例...
  • P1和P2形成一个环形,所以我们说它产生了死锁,这个图也是不安全状态。因为当P2申请一台输入设备时,输入设备已经分配给了P1,这就导致P2一直处于申请状态,当输出设备要分配给P2的时候,P2在申请,输出设备也就一直...
  • PHP验证登录状态安全

    千次阅读 2018-07-03 09:36:03
    固定的私钥来做salt其实不好,一旦私钥泄漏之后就很麻烦,而且最痛苦的其实是你不知道你到底有没有泄漏用户的密码字符串作为salt是更好的办法签名字符串:$sign = md5('$user_id+$user+_password[+浏览器UA[+IP地址[....
  • 深入理解java虚拟机中74,75页讲到安全区域,说到了线程在安全区域的情况,发生GC时,不用管在安全区域的线程,那不在安全区域的线程是什么情况?还是线程中断时,都会停留在安全区域?能提供一下参考资料么 安全...
  • 什么是线程安全

    万次阅读 多人点赞 2016-08-09 17:20:06
    线程安全是多线程领域的问题,线程安全可以简单理解为一个方法或者一个实例可以在多线程环境中...实际上,这些问题只有在一或多个线程向这些资源做了写操作时才有可能发生,只要资源没有发生变化,多个线程读取相同的
  • 什么是线程安全?如何保证线程安全

    千次阅读 多人点赞 2019-05-27 23:22:44
    什么是线程安全 参考: 《Java并发编程实践》中对线程安全的定义: 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作...
  • 理解什么是线程安全性、原子性

    万次阅读 2019-12-29 11:56:30
    什么会出现这种情况,出现这种情况显然表明我们这个方法根本就不是线程安全的,出现这种问题的原因有很多,我们说最常见的一种,就是我们A线程在进入方法后,拿到了count的值,刚把这个值读取出来还没有改变count...
  • 简单安全的用cookie保持登录状态

    千次阅读 2009-11-21 21:00:00
    在做登录验证及保持登录状态时遇到了点问题,首先,要安全;其次,这只是一个简单的留言本程序,要简单些,不要搞的过于复杂! 在水水的Discuz!登录验证Cookie机制分析一文中受到启发,又向习明请教了下,仔细看了下...
  • ospf邻居状态有7种,分别是: down init 2way Exstart ...路由器A刚启动时,ospf处于down的状态,因为它还没有与其他路由器交换信息。它使用组播地址224.0.0.5发送hello分组。 所有运行ospf的路由器收到A的...
  • 命令行查看memcache状态 memcache的运行状态可以方便的用stats命令显示。 首先用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。 这些状态...
  • 状态bean和无状态bean是在说什么

    万次阅读 2013-08-06 17:44:42
    一个类的内部状态创建后,在整个生命期间都不会发生变化时,就是不变类。这种使用不变类的做法叫做不变模式。 不变模式有两种形式:一种是弱不变模式,另一种是强不变模式。 弱不变模式: 一个类的实例的状态是不...
  • 线程包括哪些状态的问题说专业一点就是线程的生命周期。 不同的编程语言对线程的生命周期封装是不同的。 Java 中线程的生命周期 Java 语言中线程共有六种状态。 NEW(初始化状态) RUNNABLE(可运行 / 运行...
  • 最近在好好了解http,发现对介绍http的第一句话【http协议是无状态的,无连接的】就无法理解了:无状态的【状态】到底指的是什么?! 找了很多资料不仅没有发现有一针见血正面回答这个问题的,而且有些解释还充斥了...
  • tips:token的安全级别,取决于你的实际需求,所以如果不是涉及财产安全的领域,并不建议太严格(比如用户走着走着,3G换了个基站,闪断了一下IP地址变了,尼玛token过期了,这就属于为了不必要的安全丢了用户体验,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 932,677
精华内容 373,070
关键字:

安全是没有什么的状态