MFC多线程同步问题,互斥量

共享资源是一些类对象的MAP,每个对象(某设备实例)中有不同的互斥量同步不同的类变量(本意是防止多线程访问同一个对象),现在迷糊了,互斥量放在类里面是不是不当?是不是在访问对象的时候就加互斥量来的方便(对整个对象进行加锁 - 因为对整个类操作较多,这么做貌似锁太深了)?求大神帮助

5个回答

这个要具体看对象的生存空间,和互斥量的作用!无法一概而论。

q___wert__yuiop
q___wert__yuiop 对象是随进程一直存在(只要被创建),大概有1W多个对象,对象中存不同的变量供线程访问
接近 5 年之前 回复

搞这么麻烦干什么,线程同步直接用CreateMutex和WaitForSingleObject好了。
多个线程访问同一个资源时,只有一个线程可以获取互斥体,其他线程会进入“阻塞”状态,当拥有互斥体的线程释放互斥体时,系统的任务调度程序会让一个阻塞的线程获取互斥体并使之恢复运行。
另外线程同步还可以用事件对象,自旋锁,信号灯。
自旋锁是比较特殊的,在等待时,线程不进入“阻塞”状态,而是不停的自旋,不停检查自旋锁有没有被释放,这样要比其他的方法唤醒速度快更精准,但是会占用宝贵的CPU时间,微软认为如果使用自旋锁同步时间过长(我记得是2纳秒)的程序是不友好的程序

zuishikonghuan
zuishikonghuan 回复q___wert__yuiop: 是的,其他线程都被挂起不再占用CPU,在互斥体释放之后系统会使等待的线程得到互斥体恢复运行
接近 5 年之前 回复
q___wert__yuiop
q___wert__yuiop 互斥量用的太深,互斥量怎么加都成问题,是MAP就用一个互斥量?有一个线程占用,其他的都只能挂着
接近 5 年之前 回复

互斥量的操作,控制应该是针对动作,而不是对象,也就是你说的访问共享对象时,才添加到这些访问函数,这样才能做到对共享对象资源的保护。

不过有时候可能不需要粒度那么深,就可以用一些比较大的锁,这样简单,当然性能会有一些损失。

oyljerry
oyljerry 回复q___wert__yuiop: 嗯,确实太多了,你应该分组一下,把一些公用一个互斥量
接近 5 年之前 回复
q___wert__yuiop
q___wert__yuiop 对象中保存了设备的一些值,不同的操作用不同的互斥量,会不会太多?对象大概有1w个,每个对象有5个互斥量
接近 5 年之前 回复

也可以用EnterCriticalSection,有一种用法开始是用户态 用自旋锁, 一段时间得不到资源才进入内核态

leisurehuangzhong
leisure_huang 如果正在拥有资源的线程很长时间不释放,等待的线程也会被挂起,如果很快释放的话,那么在等待的线程,假设还没被挂起,要比用内核做互斥更快得到资源,感觉效率更高呀。
接近 5 年之前 回复
q___wert__yuiop
q___wert__yuiop 这样线程不会挂起,其他的线程调度不上,不影响性能吗?
接近 5 年之前 回复

在线程中访问对象的MAP的地址,加锁就可以了,不用创建互斥内核对象

lx624909677
lx624909677 回复q___wert__yuiop: 准确来说,是切换内核对象时会比较耗资源,不是创建的时候,上面说错了
接近 5 年之前 回复
lx624909677
lx624909677 回复q___wert__yuiop: 创建类似event互斥互相时候确实会比较耗资源,加锁只需要在访问共同操作对象的地方加锁就可以了,做其他地方的操作可以不加
接近 5 年之前 回复
q___wert__yuiop
q___wert__yuiop 这么说是互斥内核对象比锁耗资源吗?锁加在对象身上的话加得太深了,对象就是设备,有很多其他操作
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
多线程编程 互斥 同步问题

如题![图片说明](https://img-ask.csdn.net/upload/201509/16/1442407645_803703.jpg) 问题描述: 1、设计程序write,read线程,wirte线程从消息队列尾端tail写入,read线程从消息队列头部head读取。 2、当写线程执行效率非常快,会发生什么情况? 3、当读线程执行效率非常快,会发生什么情况?

mfc界面的多线程并发访问,如何能够保证互斥?

我用timer的方法没秒钟调用一个函数,这个函数会访问界面上的一个编辑框中的内容,但是发现运行久了界面会出错,应该是多线程没有互斥引起的,怎么处理这个问题比较方便?

c++ 多线程同步 互斥对象 输入输出流

#include <iostream> #include <windows.h> using namespace std; // 声明两个线程函数 DWORD WINAPI ThreadProc1( LPVOID lpParameter // thread data ); DWORD WINAPI ThreadProc2( LPVOID lpParameter // thread data ); // 全局票数 int gTicket = 100; // 互斥对象 HANDLE hMutex; int main() { // 创建两个线程句柄 HANDLE hThread1 = CreateThread(NULL, 0, ThreadProc1, NULL, 0, NULL); HANDLE hThread2 = CreateThread(NULL, 0, ThreadProc2, NULL, 0, NULL); // 创建互斥对象 hMutex = CreateMutex(NULL, false, NULL); // 关闭两个线程句柄 CloseHandle(hThread1); CloseHandle(hThread2); // 主线程睡4秒,方便两个线程函数能够获取CPU时间片 Sleep(4000); system("pause"); return 0; } // 定义两个线程函数 DWORD WINAPI ThreadProc1(LPVOID lpParameter ) { while(true) { WaitForSingleObject(hMutex, INFINITE); if(gTicket > 0) { cout<<"thread1 sell ticket "<<gTicket--<<endl; } else { break; } ReleaseMutex(hMutex); } return 0; } DWORD WINAPI ThreadProc2(LPVOID lpParameter ) { while(true) { WaitForSingleObject(hMutex, INFINITE); if(gTicket > 0) { cout<<"thread2 sell ticket "<<gTicket--<<endl; } else { break; } ReleaseMutex(hMutex); } return 0; } 用断点调试,竟然发现了这样的问题。线程1的函数获取互斥对象的拥有权(并未释放拥有权),接着切换CPU时间片,进入到了线程2函数的WaitForSingleObject,然后调用了线程2函数的 cout<<"thread2 sell ticket "<<gTicket--<<endl;,这是怎么一回事呢,线程1函数还未释放拥有权,线程2函数怎么还能运行的? 使用互斥对象,显示的结果有时候会是这样。百思不得其解。

多线程互斥失败的问题

请教一下各位,我有个地方需要多个线程排队访问某个资源的问题,我有个排队 对象 queue,他有两个函数queueIn(进队列),和queueOut(出队列), 为了简单起见我这里只用了两个线程去排队,queue里面有个mutex用于互斥,queueIn里面会去lock这个互斥量,queueOut会去unlock这个互斥量,程序启动 了以后两个线程会在自己的run函数(qt,其他的类似)里面去调用queue.queueIn()进行排队,因为有互斥量的存在按道理一个线程会lock成功,而另一个线程会阻塞在里面直到前一个线程调用queueOut释放掉互斥量,但是呢结果是这两个线程居然都lock互斥量成功了,都直接通过了这个阻塞函数,互斥量居然没起到他的作用,请教一下各位大神,这种情况该怎么处理,我就是想弄个阻塞队列,让多个线程阻塞在queueIn这里,等待上一个线程资源访问完成再依次序通过,但是在目前两个线程这种简单情况下互斥量是类成员,居然表现得像是函数的局部变量一样,没起到互斥作用,请帮助解决一下,谢谢

多线程同步方案同步选择

在WIN32的C++多线程开发中的生产消费使用的同步方案中,一般会采用 条件变量,来做为等待判断的条件。 我在网狐的工作线程中看见了一种新的使用方法: 工作线程使用 GetQueuedCompletionStatus 等待事件触发。 生产线程使用 PostQueuedCompletionStatus 产生消息,另 GetQueuedCompletionStatus 触发执行。 我在网络中找资料,并没有关于多线程 同步使用 IOCP 完型端口的案例。 都是使用信号量,互斥,临界,事件,性能上临界的性能相对较优,我看了网狐的实现方式,这种采用 IOCP的方法反而是最简单的。 问题来了: 使用IOCP 作为生产消费的实现方案,有什么优势或者相关的资料呢?国内网络找到的都是清一色的网络编程的异步I/O。

java实现同步多线程的问题

卖票的代码,无法实现完整的多线程,只有一两个线程会输出。 import java.util.Scanner; class MyThread implements Runnable{ private int ticket; //票数 private String name; //线程名称 public MyThread() { super(); } public MyThread(int ticket,String name) { super(); this.ticket = ticket; this.name = name; } public int getTicket() { return ticket; } public void setTicket(int ticket) { this.ticket = ticket; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public void run() { //控制线程输出 int t = this.ticket; synchronized(this){ //同步线程 for(int i = 1;i<=t;i++) { if(this.ticket>0) { System.out.println(this.name+",当前余票是:"+(this.ticket-1)+".售出票号是:"+i); } this.ticket--; } } } } public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("请输入总的票数:"); int ticketNum = in.nextInt(); System.out.println("请输入窗口数目:"); int num = in.nextInt(); MyThread mt = new MyThread(); for(int i = 1;i<=num;i++) { mt.setName("售票窗口"+i+"正在售票"); mt.setTicket(ticketNum); new Thread(mt).start(); } } } 以下为代码运行结果: ![图片说明](https://img-ask.csdn.net/upload/202004/07/1586264166_214853.png) 麻烦大佬们解答一下,谢谢! ps:为什么在主方法的设置多线程for循环那里,将创建和实例化对象放入for循环中,就无法实现同步线程呢?

java 线程,同步,互斥问题

X类中有A,B两个方法,如何实现:同一线程、同一对象、同一时刻只能访问其中A,B一个;且不同对象能同时访问A或B。

多线程同步数据且等多线程同时完成后再走主线程

用线程池管理,开10条线程去读取和更新几十万数据,但是主线程直接跑下去了,这个不能允许,但是线程池又不能用join来。自己建Thread join,这10条线程又是一条条运行,不合要求。应该如何做,谢谢

mfc循环创建的多线程A去调用了另外一个线程B,其中A线程出问题要退出。

mfc循环创建的多线程A去调用了另外一个线程B,其中A的一个线程出问题要退出。B线程怎么也终止了 怎么办? 用的是下面这个。 // 资源释放结束,可退出线程并析构类 pMg->m_ExitThread.SetEvent();

多线程同步问题 限制循环条件为什么不起作用

题目: 某公司组织年会,会议入场时有两个入口,在入场时每位员工都能获取一张双色球彩票,假设公司有100个员工,利用多线程模拟年会入场过程, 并分别统计每个入口入场的人数,以及每个员工拿到的彩票的号码。线程运行后打印格式如下: 编号为: 2 的员工 从后门 入场! 拿到的双色球彩票号码是: [17, 24, 29, 30, 31, 32, 07] 编号为: 1 的员工 从后门 入场! 拿到的双色球彩票号码是: [06, 11, 14, 22, 29, 32, 15] //..... 从后门入场的员工总共: 13 位员工 从前门入场的员工总共: 87 位员工 测试类: public class Demo { public static void main(String[] args) { People p = new People(); Thread t1 = new Thread(p, "前门"); Thread t2 = new Thread(p, "后门"); t1.start(); t2.start(); } } 会场类: public class People implements Runnable{ private int front = 0; private int back = 0; private int count = 100; public List<Integer> cai() { List<Integer> list = new ArrayList<>(); for (int i = 0; i < 6; i++) { list.add((int) (1+Math.random()*32)); } list.add((int)(1+Math.random()*15)); return list; } public void run() { while (count > 0) { synchronized (this) { if ("前门".equals(Thread.currentThread().getName())) { System.out.println("第"+(100-count+1)+"名员工,从"+Thread.currentThread().getName()+"进,取出的双色球的号码为:"+cai()); front++; count--; }else if ("后门".equals(Thread.currentThread().getName())) { System.out.println("第"+(100-count+1)+"名员工,从"+Thread.currentThread().getName()+"进,取出的双色球的号码为:"+cai()); back++; count--; } if (count==0) { System.out.println("前门人数:"+front+"\r\n"+"后门人数:"+back); } } } } } 求问:while的条件count>0,为什么在同步代码块内,会多输出count=0,第101号员工的情况,while不应该筛掉了吗? ![图片说明](https://img-ask.csdn.net/upload/201811/08/1541669403_711164.png)

关于操作系统pv操作进行同步和互斥

1-6是原题目第七张图片第七题是问题。![图片](https://img-ask.csdn.net/upload/201710/24/1508846977_918863.jpg)![图片](https://img-ask.csdn.net/upload/201710/24/1508846931_78088.jpg)![图片](https://img-ask.csdn.net/upload/201710/24/1508846993_520549.jpg)![图片](https://img-ask.csdn.net/upload/201710/24/1508846943_195432.jpg)![图片](https://img-ask.csdn.net/upload/201710/24/1508847003_690186.jpg)![图片](https://img-ask.csdn.net/upload/201710/24/1508847009_105497.jpg)![图片](https://img-ask.csdn.net/upload/201710/24/1508846958_570090.jpg)

linux可以用互斥锁控制多个线程的执行顺序吗?如何实现?

假设有三个线程:1、2、3,各自打印A,B,C。 是否可以只用互斥锁就实现“ACBCACBC……”的打印输出? (不使用其他的线程同步方法)

linux C++多线程 同步问题 要求实时性 如何解决

有这样一个问题 , 我现在做一个控制器 当接收到界面 几类数据之后 ,分类计算运行。要求是接收到数据后就可以立马运行,有没有什么好的思路,大家帮忙想一想。 使用互斥锁会有延时 情况

互斥量 临界区 信号量 条件变量 效率对比

windows 下,如下四种同步方式中,互斥量 临界区 信号量 条件变量, 效率对比,求指导,谢谢

多线程同步银行多账户取钱

最近一直在想一个多线程的问题,举个例子 比如javaweb银行项目,同时两个人在异地个存取200元如何保证不出差错。 两个人在异地同时登陆的话其实在系统中是属于两个数据相同的对象(spring+hibernate)如果使用对象的排它锁也不会起作用。这种需求应该怎样实现那?

大学狗linux线程同步与互斥求助呀

#include <stdio.h> #include <pthread.h> #include <unistd.h> #define false 0 #define ture 1 int flag[2]; static int a = 1; int turn; void *p0(){ while (ture){ flag [0]=ture; //this means I want the critical section turn = 0;//this means i have the chance. while (flag[1]&&turn==0);//this is for busywaiting ,until the other is not intersted any more. a--;//I am in! flag[0]=false;//I am not interested any more. printf ("这是第一个线程a=%d\n",a);// not about critical section sleep(1);//I block } } void *p1(){ while (ture){ flag[1]=ture ; turn = 1; while (flag[0]&&turn==1); a++;//linjiequ flag[1]=false ; printf ("这是第二个线程a=%d\n",a); sleep(1);//other code } // result is the first thread a=o then second thread a=1 } int main(){ flag[0]=false; flag[1]=false; int err1,err2; pthread_t id1,id2; err1=pthread_create(&id2, NULL, p1, NULL); err2=pthread_create(&id1, NULL, p0, NULL);//while create system do not run the p0/p1 body. pthread_join( id2, NULL);//let id1 runs pthread_join( id1, NULL);//let id1 runs and main waits } 我不理解main里到底是怎么运行的,create了两个进程以后第一个join就让id2进程运行嘛,对应着让p1运行 所以这第一下应该就可以打出这是第二个进程a=2然后挂起再运行进程id1嘛,id1又打出这是第一个进程a=1 接着再id2 id1一直循环下去。但是编译运行的结果却是先打印 这是第一个进程a=0 然后是这是第二个进程a=1 然后循环下去 甚至把其中的一个join给//,结果也还是一样 可是不是应该有一个进程就得不到机会运行了吗?所以问题来了. 1 为什么是这个顺序? 2 为什么//一个join以后还是有两个进程运行

程序的互斥量如何得知?

看病毒报告中常出现“xx程序创建互斥量为:”,请问高手,这个互斥量如何得知?

java写多线程-同步访问使用 synchronized

java写多线程-同步访问 (10分) 现已有Account类,拥有 属性: private int balance 方法: 相应的getter方法。 要求为该类编写: void deposit(int money) //存钱,在余额的基础上加上money void withdraw(int money) //取钱,在余额的基础上减去money 注意: 取钱时如果balance<0的时候,会抛出异常。在多线程情况下,如只有一个存钱的线程,但是有多个取钱的线程,很可能会抛出异常。 需要编写完整的deposit方法与withdraw的前半部分代码解决该问题。 裁判测试程序: import java.util.Scanner; //这里是已有的Account类前半部分的代码 /*这里是deposit代码*/ /*这里是withdraw代码的前半部分*/ if(balance<0) //这里是withdraw代码的后半部分。 throw new IllegalStateException(balance+""); } /*系统已有代码,无需关注*/

linux 多线程加互斥锁没用

程序执行结果: girl(0xb707fb70) withdraw 1000.000000 from Account 101 boy(0xb7880b70) withdraw 1000.000000 from Account 101 account balance:0.000000 几个程序如下: account.c程序源码: #include "account.h" #include <malloc.h> #include <assert.h> #include <string.h> //create Account Account* create_account(int code,double balance){ Account *a = (Account*)malloc(sizeof(Account)); assert(a !=NULL); a->code = code; a->balance = balance; //对互斥锁初始化 pthread_mutex_init(&a->mutex,NULL); return a; } //destroy Account void destroy_account(Account *a){ assert(a != NULL); pthread_mutex_destroy(&a->mutex); free(a); } //qu money double withdraw(Account *a,double amt){ assert(a != NULL); pthread_mutex_lock(&a->mutex); if(amt < 0 || amt > a->balance){ pthread_mutex_unlock(&a->mutex); return 0.0; } double balance = a->balance; sleep(1); balance -= amt; a->balance = balance; pthread_mutex_unlock(&a->mutex); return amt; } //cun money double deposit(Account *a,double amt){ assert(a !=NULL); pthread_mutex_lock(&a->mutex); if(amt < 0){ pthread_mutex_unlock(&a->mutex); return 0.0; } double balance = a->balance; sleep(1); balance += amt; a->balance = balance; pthread_mutex_unlock(&a->mutex); return amt; } //see money double get_balance(Account *a){ assert(a != NULL); pthread_mutex_lock(&a->mutex); double balance = a->balance; pthread_mutex_unlock(&a->mutex); return balance; } account.h头文件源码: #ifndef __ACCOUNT_H__ #define __ACCOUNT_H__ #include <pthread.h> typedef struct { int code; double balance; //定义互斥锁 pthread_mutex_t mutex; }Account; //create Account extern Account* create_account(int code,double balance); //destroy Account extern void destroy_account(Account *a); //qu money extern double withdraw(Account *a,double amt); //cun money extern double deposit(Account *a,double amt); //see money extern double get_account(Account *a); #endif 调用程序account-test.c源码: #include "account.h" #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct{ char name[20]; Account *account; double amt; }OperArg; //取款操作线程运行函数 void* withdraw_fn(void *arg){ OperArg *oa = (OperArg*)arg; double amt = withdraw(oa->account,oa->amt); printf("%8s(0x%lx) withdraw %f from Account %d\n",oa->name,pthread_self(), amt,oa->account->code); return (void*)0; } //存款线程运行函数 void* deposit_fn(void *arg){ OperArg *oa = (OperArg*)arg; double amt = deposit(oa->account,oa->amt); printf("%8s(0x%lx) deposit %f from Account %d\n",oa->name,pthread_self(), amt,oa->account->code); return (void*)0; } int main(void){ int err; pthread_t boy,girl; Account *a = create_account(101,10000); OperArg o1,o2; strcpy(o1.name,"boy"); o1.account = a; o1.amt = 1000; // OperArg o1 = {"boy",a,1000}; strcpy(o2.name,"girl"); o2.account = a; o2.amt = 1000; if((err = pthread_create(&boy,NULL,withdraw_fn,(void*)&o1)) != 0){ perror("pthread create error"); } if((err = pthread_create(&girl,NULL,withdraw_fn,(void*)&o2)) != 0){ perror("pthread create error"); } pthread_join(boy,NULL); pthread_join(girl,NULL); printf("account balance:%f\n",get_balance(a)); destroy_account(a); return 0; } 请问为什么互斥锁不起作用啊?怎么解决啊,多谢!

如果能重来,我不会选择北漂——初见北京

一个人走的路

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

2020年大厂Java面试前复习的正确姿势(800+面试题答案解析)

前言 个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、 丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油! 本篇分享的面试题内容包括:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Redis、MySQL、Spring、SpringBoot、SpringCloud、RabbitMQ...

抖音上很火的时钟效果

反正,我的抖音没人看,别人都有几十万个赞什么的。 发到CSDN上来,大家交流下~ 主要用到原生态的 JS+CSS3。 具体不解释了,看注释: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Title&lt;/tit...

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

又出事了?网站被攻击了?高中生?

北京时间2020年3月27日9点整,如往常一样来到公司,带开电脑,正准备打开Github网站看一会源代码,再开始手头的工作。哟吼,一直打不开,一直出现如下页面: 我想很多网友也尝到了甜头,各大技术群炸开了锅,据网友反馈有攻击者正在发起大规模的中间人挟持,京东和Github等网站等网站都受到了影响。 什么是中间中间人挟持呢? 简而言之,就是攻击者在数据网络传输的过程中,截获传输过程中的数据并篡改...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

我把华为小米年报放一起,发现华为才是真·手机公司,小米确实不靠卖手机赚钱...

郭一璞 发自 凹非寺量子位 报道 | 公众号 QbitAI国产手机界的两大玩家,华为&amp;小米,昨天在同一天前后脚发布了2019年财报。同行冤家,发财报也碰在了同一天。那我们就对比...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

毕业5年,我熬夜整理出了这50个优质的电子书网站,吐血推荐!

大家好,我是武哥,最近经常有小伙伴问我要电子书,都什么年代了,还找不到电子书吗?如果要说原因,那就是你还没遇到武哥我(手动滑稽~)!我今天把这么多年我经常看的电子书网站整理一下给大家,基本上能解决大家的需求。不管是在校生还是已经工作了,相信肯定对你有所帮助! 1.鸠摩搜书 首先给大家推荐的网站是:鸠摩搜书 地址:https://www.jiumodiary.com/ 这个网上非常棒,上面有很多优质...

MySQL性能优化(五):为什么查询速度这么慢

前期回顾: MySQL性能优化(一):MySQL架构与核心问题 MySQL性能优化(二):选择优化的数据类型 MySQL性能优化(三):深入理解索引的这点事 MySQL性能优化(四):如何高效正确的使用索引 前面章节我们介绍了如何选择优化的数据类型、如何高效的使用索引,这些对于高性能的MySQL来说是必不可少的。但这些还完全不够,还需要合理的设计查询。如果查询写的很糟糕,即使表结构再合理、索引再...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

总结了Mybatis,原来知识点也没多少嘛

看完这篇Mybatis,感觉你三天就会用了。

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

疫情后北上广深租房价格跌了吗? | Alfred数据室

去年3月份我们发布了《北上广深租房图鉴》(点击阅读),细数了北上广深租房的各种因素对租房价格的影响。一年过去了,在面临新冠疫情的后续影响、城市尚未完全恢复正常运转、学校还没开学等情况下...

面试官给我挖坑:a[i][j] 和 a[j][i] 有什么区别?

点击上方“朱小厮的博客”,选择“设为星标”后台回复&#34;1024&#34;领取公众号专属资料本文以一个简单的程序开头——数组赋值:int LEN = 10000; int[][] ...

在拼多多上班,是一种什么样的体验?我心态崩了呀!

之前有很多读者咨询我:武哥,在拼多多上班是一种什么样的体验?由于一直很忙,没抽出时间来和大家分享。上周末特地花点时间来写了一篇文章,跟大家分享一下拼多多的日常。 1. 倒时差的作息 可能很多小伙伴都听说了,拼多多加班很严重。这怎么说呢?作息上确实和其他公司有点区别,大家知道 996,那么自然也就能理解拼多多的“11 11 6”了。 所以当很多小伙伴早上出门时,他们是这样的: 我们是这样的: 当...

相关热词 c#跨线程停止timer c#批量写入sql数据库 c# 自动安装浏览器 c#语言基础考试题 c# 偏移量打印是什么 c# 绘制曲线图 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行
立即提问