当前位置:   article > 正文

基于python+django学生信息管理系统设计与实现(含程序源码和毕业设计)_django 学生信息管理系统源码

django 学生信息管理系统源码

系统初始界面;登陆界面设计 ;学生信息录入;学生信息修改;学生信息查询;学生成绩录入;修改学生成绩;学生成绩查询 ;用户管理
该项目用PyCharm 可直接打开,数据库内嵌,可直接用

文件:590m.com/f/25127180-486621497-487091(访问密码:551685)

以下内容无关:

-------------------------------------------分割线---------------------------------------------

在之前对多线程编程的研究之后,我们遇到了线程安全问题,如在多线程票务场景下的超售/转售。

最后一部分的注释在这里-过程和线程注释

我们如何确定一个程序是否可能存在线程安全问题?有三个标准:

在一个多线程程序中+有共享数据+多个语句操作共享数据

多线程场景和共享数据的条件不能更改(比如4个窗口一起卖100张票,这是业务)

因此,这个想法可以从第三点“多个语句操作共享数据”开始,因为它正处于多个语句操作数据问题的过程中

然后,我们可以打包所有可能有问题的代码,每次只让一个线程执行它

1.2同步与异步

那么,如何“打包所有可能出错的代码”呢?我们可以使用synchronized关键字来实现同步

换句话说,当多个对象对共享数据进行操作时,可以使用同步锁来解决线程安全问题。锁定代码是同步的

接下来,介绍同步和异步的概念:

同步:显示排队的效果。一次,只有一个线程可以独占资源,其他没有权限的线程可以排队。

缺点是效率低,但很安全。

异步:反映了多线程抢占资源的效果,线程之间不等待,彼此抢占资源。

缺点是存在安全隐患,效率更高。

1.3同步

1.3.1写作

同步(对象){

需要同步的代码(即多个操作共享数据的语句,这可能会产生问题);

}

1.3.2前提

使用同步有两个先决条件:

图1:同步需要两个或更多线程(单个线程不需要是多线程安全的)

前提2:多个线程必须使用同一个锁(我上锁后其他人可以看到锁,否则我的锁不会锁其他人,锁的效果会丢失)

1.3.3特点

synchronized关键字可以用来修改一个方法,称为同步方法,使用一个称为this的锁对象

synchronized关键字可以用来修改一个称为同步块的代码块,该代码块可以使用任何锁对象

同步的缺点是它减慢了程序的执行,但是为了保证线程的安全,必须牺牲一些性能

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/153986?site
推荐阅读
相关标签
  

闽ICP备14008679号