Читаем Programming with POSIX® Threads полностью

31  my_param.sched_priority);

32 #else

33  printf ("thread_routine running\n");

34 #endif

35  return NULL;

36 }

37

38 int main (int argc, char *argv[])

39 {

40  pthread_t thread_id;

41  pthread_attr_t thread_attr;

42  int thread_policy;

43  struct sched_param thread_param;

44  int status, rr_min_priority, rr_max_priority;

45

46  status = pthread_attr_init (&thread_attr);

47  if (status != 0)

4 8  err_abort (status, "Init attr");

49

50 /*

51 * If the priority scheduling option is defined, set various

52 * scheduling parameters. Note that it is particularly important

53 * that you remember to set the inheritsched attribute to

54 * PTHREAD_EXPLICIT_SCHED, or the policy and priority that you've

55 * set will be ignored! The default behavior is to inherit

56 * scheduling information from the creating thread.

57 */

58 #if defined (_POSIX_THREAD_PRIORITY_SCHEDULING) && !defined (sun)

59  status = pthread_attr_getschedpolicy (

60  &thread_attr, &thread_policy);

61  if (status 1= 0)

62  err_abort (status, "Get policy");

63  status = pthread_attr_getschedparam (

64  &thread_attr, &thread_param);

65  if (status != 0)

66  err_abort (status, "Get sched param");

67  printf (

68  "Default policy is %s, priority is %d\n",

69  (thread_policy == SCHED_FIFO ? "FIFO"

70  : (thread_policy == SCHED_RR ? "RR"

71  : (thread_policy == SCHED_OTHER ? "OTHER" 72 : "unknown"))),

73  thread_param.sched_priority);

74

75  status = pthread_attr_setschedpolicy (

76  &thread_attr, SCHED_RR);

77  if (status != 0)

78  printf ("Unable to set SCHED_RR policy.\n");

79  else {

80 /*

81 * Just for the sake of the exercise, we'll use the

82 * middle of the priority range allowed for

83 * SCHED_RR. This should ensure that the thread will be

84 * run, without blocking everything else. Because any

85 * assumptions about how a thread's priority interacts

86 * with other threads (even in other processes) are

87 * nonportable, especially on an implementation that

88 * defaults to System contention scope, you may have to

89 * adjust this code before it will work on some systems.

90 */

91  rr_min_priority = sched_get_priority_min (SCHED_RR);

92  if (rr_min_priority == -1)

93  errno_abort ("Get SCHED_RR min priority");

94  rr_max_priority = sched_get_priority_max (SCHED_RR);

95  if (rr_max_priority == -1)

96  errno_abort ("Get SCHED_RR max priority");

97  thread_param.sched_priority =

98  (rr_min_priority + rr_max_priority)/2;

99  printf (

100  "SCHED_RR priority range is %d to %d: using %d\n",

101  rr_min_priority,

102  rr_max_priority,

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных