当前位置: 首页 > news >正文

怎么看网站有没有做301跳转python 网站开发实例

怎么看网站有没有做301跳转,python 网站开发实例,wordpress收不到,网站平面设计培训互斥与同步 一.线程的局部存储二.线程的分离三.互斥1.一些概念2.上锁3.锁的原理4.死锁 一.线程的局部存储 例子 可以看到全局变量是所有线程共享的#xff0c;如果我们想要每个线程都单独访问g_val怎么办呢#xff1f;其实我们可以在它前面加上__thread修饰。 这就相当于把g… 互斥与同步 一.线程的局部存储二.线程的分离三.互斥1.一些概念2.上锁3.锁的原理4.死锁 一.线程的局部存储 例子 可以看到全局变量是所有线程共享的如果我们想要每个线程都单独访问g_val怎么办呢其实我们可以在它前面加上__thread修饰。 这就相当于把g_val从全局变量去储存到了局部储存里。每个线程可以单独访问自己的g_val。注意__thread只能定义内置类型 二.线程的分离 默认情况下新创建的线程是joinable的线程退出后需要对其进行pthread_join操作否则无法释放资源从而造成系统泄漏。 如果不关心线程的返回值join是一种负担(因为它会阻塞我们的主线程)这个时候我们可以告诉系统当线程退出时自动释放线程资源。 这个函数在主函数和当前线程里都可以使用。 三.互斥 1.一些概念 临界资源多线程执行流共享的资源就叫做临界资源 临界区每个线程内部访问临界资源的代码就叫做临界区。 互斥任何时刻互斥保证有且只有一个执行流进入临界区访问临界资源通常对临界资源起保护作用。 原子性后面讨论如何实现不会被任何调度机制打断的操作该操作只有两态要么完成要么未完成。 大部分情况线程使用的数据都是局部变量变量的地址空间在线程栈空间内这种情况变量归属单个线程其他线程无法获得这种变量。 但有时候很多变量都需要在线程间共享这样的变量称为共享变量可以通过数据的共享完成线程之间的交互。 多个线程并发的操作共享变量会带来一些问题。 例如一个抢票系统 #include stdio.h #include stdlib.h #include string.h #include unistd.h #include pthread.hint ticket100; void *route(void *arg) {char *id (char*)arg;while(1) {if (ticket0) {usleep(1000);printf(%s sells ticket:%d\n, id, ticket);ticket--;} else {break;}} } int main() {pthread_t t1, t2, t3, t4;pthread_create(t1, NULL, route, (void*)thread 1);pthread_create(t2, NULL, route, (void*)thread 2);pthread_create(t3, NULL, route, (void*)thread 3);pthread_create(t4, NULL, route, (void*)thread 4);pthread_join(t1, NULL);pthread_join(t2, NULL);pthread_join(t3, NULL);pthread_join(t4, NULL);return 0; }可以看到已经抢到了负数很明显是不符合实际的。这是因为在执行打印ticket操作时操作系统需要从CPU里读取ticket数据而当一个线程已经打印了ticket0后再执行了减减操作,ticket变为了-1将ticket的值再CPU里更新这时切换到了另一个线程而该线程又恰好正要执行打印ticket操作那么它从CPU里读取了数据打印出来就为了负数。 要解决以上问题需要做到三点 1.代码必须要有互斥行为当代码进入临界区执行时不允许其他线程进入该临界区。 2.如果多个线程同时要求执行临界区的代码并且临界区没有线程在执行那么只能允许一个线程进入该临界区。 3.如果线程不在临界区中执行那么该线程不能阻止其他线程进入临界区。要做到这三点本质上就是需要一把锁。Linux上提供的这把锁叫互斥量。 2.上锁 创建锁 调用函数时可能会出现以下情况 1.互斥量处于未锁状态该函数会将互斥量锁定同时返回成功 2.发起函数调用时其他线程已经锁定互斥量或者存在其他线程同时申请互斥量但没有竞争到互斥量那么pthread_ lock调用会陷入阻塞(执行流被挂起)等待互斥量解锁。 加锁 修改代码 #include stdio.h #include stdlib.h #include string.h #include unistd.h #include pthread.h #include sched.hpthread_mutex_t mutexPTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP;//初始化 int ticket100; void *route(void *arg) {char *id (char*)arg;while(1) {pthread_mutex_lock(mutex);//上锁if(ticket0) {usleep(1000);printf(%s sells ticket:%d\n, id, ticket);ticket--;pthread_mutex_unlock(mutex);//解锁} else {pthread_mutex_unlock(mutex);//解锁break;}} } int main() {pthread_t t1, t2, t3, t4;pthread_create(t1, NULL, route, (void*)thread 1);pthread_create(t2, NULL, route, (void*)thread 2);pthread_create(t3, NULL, route, (void*)thread 3);pthread_create(t4, NULL, route, (void*)thread 4);pthread_join(t1, NULL);pthread_join(t2, NULL);pthread_join(t3, NULL);pthread_join(t4, NULL);pthread_mutex_destroy(mutex);//销毁return 0; }我们发现票数问题得到了解决但是票全被一个线程抢走了这是怎么回事呢其实是由于不同线程对于锁的竞争能力是不同的这里当线程2释放锁后马上又去申请了锁导致锁一直被线程2拿着出现了线程饥饿问题。我们可以在外面加上sleep函数让每个线程释放锁后休息一段时间避免锁一直在某一个线程上。 3.锁的原理 经过上面的例子大家已经意识到单纯的 i 或者 i 都不是原子的有可能会有数据一致性问题。 为了实现互斥锁操作,大多数体系结构都提供了swap或exchange指令,该指令的作用是把寄存器和内存单元的数据相交换,由于只有一条指令,保证了原子性,即使是多处理器平台,访问内存的 总线周期也有先后,一个处理器上的交换指令执行时另一个处理器的交换指令只能等待总线周期。 现在我们把lock和unlock的伪代码改一下。 movb语句是把al寄存器置零。 xchgb语句就是把al寄存器里的数据交换与内存里的mutex(1)变量进行一次交换此时mutex就变为了0。注意mutex是所有线程共享也就是说其实1只有一份当第一个进程将mutex里的1交换走后后面的线程就无法拿到1也就是上锁了。 4.死锁 死锁是指在一组进程中的各个进程均占有不会释放的资源但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。 死锁的必要条件 互斥条件一个资源每次只能被一个执行流使用。 请求与保持条件一个执行流因请求资源而阻塞时对已获得的资源保持不放。 不剥夺条件:一个执行流已获得的资源在末使用完之前不能强行剥夺。 循环等待条件:若干执行流之间形成一种头尾相接的循环等待资源的关系。避免死锁 破坏死锁的四个必要条件。 加锁顺序一致。 避免锁未释放的场景。 资源一次性分配。
http://www.w-s-a.com/news/991451/

相关文章:

  • 可以做本地生活服务的有哪些网站中油七建公司官网
  • 如何建设谷歌网站网站建设优点
  • 做网站的目标是什么产品宣传片制作公司
  • 柳州建设公司网站辽宁建设工程信息网评标专家入库
  • 合肥建设学校官方网站excel导入wordpress
  • 禹城网站设计做网站需要考虑哪些
  • 深圳做营销网站建设wordpress添加文章封面
  • 阿里云的网站建设方案织梦和wordpress哪个安全
  • 聊城网站建设公司电话wordpress怎么重新配置文件
  • 创业如何进行网站建设泰州公司注册
  • 免费网站建设培训学校手机百度高级搜索入口在哪里
  • 建站经验安徽六安发现一例新冠阳性检测者
  • 滨州内做网站系统的公司汕头网络营销公司
  • 苏州制作网站的公司哪家好wordpress google搜索
  • c语言做项目网站wordpress博客被书为什么还
  • 企业建站用什么系统网站建设补充协议模板
  • 常州网站关键字优化淘客网站怎么做排名
  • 全flash网站制作教程网站做进一步优化
  • 建设网站步骤是如何做自媒体和网站签约赚点击
  • 网站建设的闪光点网站 备案 拍照
  • 那些企业需要做网站九洲建设集团网站
  • 中山企业做网站昆明做网站价格
  • wordpress 新网站 代码网站可以做系统还原吗
  • 百度给做网站公司餐饮设计装饰公司
  • 专门卖医疗器械的网站网站建设方案一份
  • 吉林省建设安全监督站网站wordpress 4.7.5下载
  • 网页制作视频的网站建设营销策划公司
  • 玉雕网站建设八点品牌设计公司招聘
  • 服务器可以自己的网站吗flash 网站 源码
  • 湖南做网站 搜搜磐石网络网站注册收入