网易校园招聘笔试题和面试题答案(4)

招聘笔试题2018-11-22三水老师

  int main(void)

  {

  array *arr = new array(3);

  cout

  cout

  return 0;

  }

  12.写一个程序来确定系统是大端模式还是小端模式;

  13.编程实现采用位操作来实现整数的加法操作。

  14. 图的矩阵表示法,图的深度优先遍历,算法思路及其实现。

  15.CAS(compare and swap)操作实现:(具体原理可以参考)

  16.fork函数的用法。具体题目为:

  #include

  #include

  #include

  int main(void)

  {

  int i;

  for(i=0; i<2; i++){

  fork();

  printf("-");

  fflush(stdout);

  }

  return 0;

  }

  6个-

  详见:http://coolshell.cn/articles/7965.html

  17.spin lock原理:

  先来一些代码吧!

  void initlock(volatile int* lock_status)

  {

  *lock_status = 0;

  }

  void lock(volatile int* lock_status)

  {

  while(test_and_set(lock_status = =1);

  }

  void unlock(volatile int* lock_status)

  {

  *lock_status = 0;

  }

  问题:volatile的作用?lock函数优化(针对在多cpu上提高cpu cache)?上面的缺陷(内存模式上的)?

相关推荐

猜你喜欢

大家正在看

换一换