- 博客(9)
- 收藏
- 关注
原创 线程之间通信--段错误
段错误通常发生在对未初始化的、空指针或越界的内存进行读/写操作时。当多个线程并发读写同一个内存区域时,如果没有合适的同步机制保证线程间的正确访问顺序,就有可能导致潜在的段错误。竞态条件是指多个线程并发执行时,其最终结果依赖于各个线程执行的顺序或时间间隔的情况。用系统的通信机制信号量(Semaphore)或条件变量(Condition Variable)。可以避免竞态条件和相关的错误。因此,在多线程编程中,要保证对共享变量的访问是线程安全的,并且合理地使用同步机制来避免竞态条件和潜在的段错误。
2023-08-27 11:26:05 97 1
原创 整理一下变量类型/各种关键字
register定义寄存器变量,请求编译器将这个变量保存在CPU的寄存器中,从而加快程序的运行。程序的本意是希望ISR_2中断产生时,在main当中调用dosomething函数,但是,由于编译器判断在main函数里面没有修改过i,因此可能只执行一次对从i到某寄存器的读操作,然后每次if判断都只使用这个寄存器里面的“i副本”,导致dosomething永远也不会被调用。以前写程序,当需要一个新的变量时,不管函数内还是函数外的,直接在程序开头定义,虽然不是原则上的错误,但是很不可取的作法。
2023-08-17 21:52:55 41
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人